這個問題在這里已經有了答案: 布林值在其條件發生變化時發生變化? (6 個回答) 11 小時前關閉。
我不知道為什么我的情況在第一次回圈迭代后沒有改變,有人可以詳細說明嗎?
int x = 0;
boolean b = (x==0);
for(int i = 0; i<10; i ){
if(b){
x = 10;
System.out.print(i " ");
} else{
x = 0;
}
}
我的輸出是:0 1 2 3 4 5 6 7 8 9
但不應該只是每個偶數嗎?為什么b沒有更新
uj5u.com熱心網友回復:
您b在第 2 行設定了一次,然后再也不設定了,所以它總是true. 更改的值x不會b隱式更改的值
uj5u.com熱心網友回復:
Java中的賦值=總是導致從右側到左側的副本*。
當時boolean b = (x==0);,x是0。運算式x == 0被計算一次,結果被復制到b.
要在更改b時更新x,您需要手動覆寫其值:
int x = 0;
boolean b = (x==0);
for (int i = 0; i < 10; i ) {
if (b) {
x = 10;
System.out.print(i " ");
} else {
x = 0;
}
b = (x == 0);
}
* 在物件的情況下,被復制的值是物件參考本身。分配給的變數將是對右側參考的同一物件的參考。
uj5u.com熱心網友回復:
看起來你是編碼的初學者。在這里你沒有對變數做任何事情,所以它總是正確的。如果您只想列印偶數值,請使用以下代碼。
for(int i = 0; i<10; i ){
if(i%2 == 0){
System.out.print(i " ");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/420755.html
標籤:
上一篇:確定串列是否為空
