For-each循环向后迭代

Pan*_*thy 1 java foreach

鉴于代码

String[] p = { "A", "B", "C", "D" }; 
String b = ""; 

for ( String q : p ) 
   b = q + b; 

System.out.println( b ); 
Run Code Online (Sandbox Code Playgroud)

我认为输出将是"ABCD",但它是"DCBA"

为什么??

Sto*_*ica 9

你的循环每个元素添加到b.那是:

  • 前置"A" - >"A"
  • 前置"B" - >"BA"
  • 前置"C" - >"CBA"
  • 前置"D" - >"DCBA"

如果要获得"ABCD",请更改要附加的逻辑:

for ( String q : p ) {
   // b = q + b;  // prepend
   // b = b + q;  // append
   b += q;        // append, using the shorter `+=` notation
}
Run Code Online (Sandbox Code Playgroud)


Psh*_*emo 5

因为在

b = q + b;
Run Code Online (Sandbox Code Playgroud)
  • q 表示当前元素循环从您的数组中获取
  • b 是先前连接的结果

这意味着您要在旧结果前面添加新部件.