2015-09-25 43 views
1

我有一段時間試圖找出爲什麼我不能離開一個循環。我需要做的是離開循環,如果我的布爾轉發設置爲true。 (布爾在while循環之上設置爲false有時僅留在while循環

當我運行下面的代碼片段並輸入一個正數時,我只能輸入一個無限的數字當我輸入一個負數時,我得到一個提示告訴我,是不允許並再次嘗試後比我被困在上面類似的情況。這不要緊,我進入下它會只保留了一遍又一遍,讓輸入。

{ 
     while (forward == false) 
      if (n2 == 0) 
      { 
       System.out.println("Sorry, the 0 is not a valid entry for the second number, try again!"); 
       n2 = in.nextInt(); 
      } 
      else 
      { 
       forward = true; 
      } 
    } 

回答

0

可以無需使用額外的變量即可脫身

n2 = in.nextInt(); 
while (input == 0){ 
    System.out.println("Sorry, 0 is not valid input"); 
    n2 = in.nextInt(); 
} 
0

作爲不斷前進的是一個布爾值,你可以使用它,而不是直接的比較

forward == false

如果你想使用這個變量(我不會去通的最佳方式的路徑實現你的目標),你可以做如下:

while (!forward) { 
    if (n2 == 0) { 
     System.out.println("Sorry, the 0 is not a valid entry for the second number, try again!"); 
     n2 = in.nextInt(); 
    } else { 
     forward = true; 
    } 
} 
0

你有一個外部時循環,讓你回到你的while循環?解決循環問題的有效方法是一次調試一行代碼。

如果您在Eclipse中,請在進入while循環之前通過單擊行號來設置斷點(程序將暫停的位置)。然後運行程序,你會看到當前行突出顯示。然後重複按F6逐行移動。在底部窗格中,您還可以找到變量的當前值。

現在,如果您逐行檢查您的代碼,您將會對發生的事情有更好的瞭解。