鉴于代码for-each循环迭代是向后
String[] p = { "A", "B", "C", "D" };
String b = "";
for (String q : p)
b = q + b;
System.out.println(b);
我想输出将是 “ABCD”,但它是 “DCBA”
为什么?
鉴于代码for-each循环迭代是向后
String[] p = { "A", "B", "C", "D" };
String b = "";
for (String q : p)
b = q + b;
System.out.println(b);
我想输出将是 “ABCD”,但它是 “DCBA”
为什么?
您的循环预置每个元素为b
。 即:
如果你想获得 “ABCD”,改变逻辑追加:
for (String q : p) {
// b = q + b; // prepend
// b = b + q; // append
b += q; // append, using the shorter `+=` notation
}
由于
b = q + b;
q
代表当前元素循环是从你的阵列获得b
是以前串连的结果,这意味着你在前面添加新零件的旧结果。
表达
q + b;
装置new element + old string
。
对于通过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;