2017-06-17 64 views
0

當我使「Ĵ< = 0」輸出被示出,但爲什麼我沒有得到當我進行「Ĵ< 0」線1爲什麼我沒有得到輸出,當我在下面的代碼中的第1行「j <0」?

public class Test { 


public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    int i,j; 

    for(i=0,j=0;i<3 & j<0;i++,j--)//line 1 
    { 

     System.out.println(i+"..."+j); 
    } 


} 
} 
+0

歡迎堆棧溢出!它看起來像你需要學習使用調試器。請幫助一些[互補調試技術](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之後仍然遇到問題,請隨時返回一個[最小,完整且可驗證的示例](http://stackoverflow.com/help/mcve),以說明您的問題。當j--完成時, –

+0

..隨着j遞減,其值變爲-1。 –

+0

嘗試在for循環之前初始化變量 –

回答

2

j < 0意味着j必須小於0 ,不等於。 j <= 0與等號相符。

對於循環成功j < 0必須是真實的,但因爲j與價值0初始化,j < 0是不正確的,這樣的循環將基本上就不會做任何事情。

1

因爲你的病情通過j < 0總是假的。你從0開始j,所以即使一次減少j也不會是真的。

+0

是的,你說得對..感謝我知道我的錯誤 –

-1

此代碼可以讓我來測試你的邏輯(我猜,這是你想要做什麼)「正確:」

public class Loop { 
    public static void main(String[] args) { 
     int i = 0; 
     int j = 0; 

     for (i = 0; i < 3; i++) { 
      if (i < 3 && j < 0) { 
       System.out.println(i + "..." + j); 
      } 
      j--; 
     } 
    } 
} 

當我運行此我得到:

1...-1 
2...-2 

j小於0(-1)當i爲1

j小於0(-2)當i爲2

+0

是的,它按照上述邏輯工作,但是當我們取(i <3&j <0)條件在一個循環內失敗,導致JVM檢查初始化值以及上述條件。這裏j被初始化爲零,條件爲(i <3 && j <0),所以它失敗並且循環終止 –

+0

我在猜測你的邏輯」。我已經包括一個完整的例子,輸出(運行時)。用一個代碼示例解釋你想要完成的是一個好習慣。我很高興你解決了你的問題。嘗試按照這種方法處理您發佈的未來問題。 – chocksaway

相關問題