Java 因为每个循环都是向后迭代的
给定代码Java 因为每个循环都是向后迭代的,java,foreach,Java,Foreach,给定代码 String[] p = { "A", "B", "C", "D" }; String b = ""; for ( String q : p ) b = q + b; System.out.println( b ); 我以为输出是“ABCD”,但它是“DCBA” 为什么??您的循环将每个元素预先添加到b。 即: 在“A”->“A”前面加上前缀 前置“B”->“BA” 在“C”->“CBA”前面加上前缀 前置“D”->“DCBA” 如果要获取“ABCD”,请将逻
String[] p = { "A", "B", "C", "D" };
String b = "";
for ( String q : p )
b = q + b;
System.out.println( b );
我以为输出是“ABCD”,但它是“DCBA”
为什么??您的循环将每个元素预先添加到b
。
即:
- 在“A”->“A”前面加上前缀
- 前置“B”->“BA”
- 在“C”->“CBA”前面加上前缀
- 前置“D”->“DCBA”
b
。
即:
- 在“A”->“A”前面加上前缀
- 前置“B”->“BA”
- 在“C”->“CBA”前面加上前缀
- 前置“D”->“DCBA”
b = q + b;
表示循环从数组中获取的当前元素q
是先前连接的结果b
b = q + b;
表示循环从数组中获取的当前元素q
是先前连接的结果b
q + b;
表示新元素+旧字符串
对于通过4元素数组的每次迭代,值为
b = "A" + "" - resulting in "A"
b = "B" + "A" - resulting in "BA"
b = "C" + "BA" - resulting in "CBA"
b = "D" + "CBA" - resulting in "DCBA"
将作业更改为
b=b+q;
或
b+=q 表达式
q + b;
表示新元素+旧字符串
对于通过4元素数组的每次迭代,值为
b = "A" + "" - resulting in "A"
b = "B" + "A" - resulting in "BA"
b = "C" + "BA" - resulting in "CBA"
b = "D" + "CBA" - resulting in "DCBA"
将作业更改为
b=b+q;
或
b+=q