簡體   English   中英

陳述總是正確的——為什么?

[英]statement always true - why?

我不知道為什么我的情況在第一次循環迭代后沒有改變,有人可以詳細說明嗎?

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;
    }
}

我的 Output 是:0 1 2 3 4 5 6 7 8 9

但不應該只是每個偶數嗎? 為什么b沒有更新

您在第 2 行設置b一次,然后再也不設置,所以它總是true 改變x的值不會隱式改變b的值

Java 中的=賦值總是導致從右側到左側的復制*。

boolean b = (x==0); , x0 表達式x == 0被計算一次,結果被復制到b中。

要在x更改時更新b ,您需要手動覆蓋其值:

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);
}

* 在對象的情況下,被復制的值是 object 引用本身。 分配給的變量將是對右側引用的相同 object 的引用。

看起來你是編碼的初學者。 在這里你沒有對變量做任何事情,所以它總是正確的。 如果您只想打印偶數值,請使用以下代碼。

 for(int i = 0; i<10; i++){
   if(i%2 == 0){
    System.out.print(i + " ");
   }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM