[英]For-each loop is iterating backwards
給定代碼
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.