鑑於代碼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;