2013-11-24 74 views
2

我試圖讓它到的地方,如果數字是負數,它有你重新開始,並輸入另一個數字。我試着做了一段時間的循環,但它只是把System.out.println,我進入了一個無限循環。我將如何去循環回到開始?

System.out.println("Please input a positive number: "); 
    Scanner scan = new Scanner(System.in); 
    int num = scan.nextInt(); 


    if (num < 0) { 
     System.out.println("That number is negative."); 
    } 

    if (num >= 90 && num <= 110) { 
     boolean value = true; 
    } else if (num >= 190 && num <= 210) { 
     boolean value = true; 
    } 

我之前做過這樣的事情,我記得它很簡單,一旦我明白了哈哈。不幸的是我沒有那個文件。任何幫助?

*編輯begining

int num = scan.nextInt(); 
    while (num < 0) 
    { 
    System.out.println("Please input a positive number: "); 
    Scanner scan = new Scanner(System.in); 
    } 

*編輯#2

Scanner scan = new Scanner(System.in); 
int num = scan.nextInt(); 
while (num < 0) 
{ 
System.out.println("Please input a positive number: "); 
} 

*最終工作代碼

int num; 
    Scanner scan = new Scanner(System.in); 

    while (true) 
     { 
     System.out.println("Please input a positive number: "); 
     num = scan.nextInt(); 

     if (num < 0) 
     { 
      System.out.println("That number is negative."); 
     } 
     else if ((num >= 90 && num <= 110) || (num >= 190 && num <= 210)) 
     { 
      System.out.println("true"); 
      break; 
     } 
     else 
     { 
      System.out.println("false"); 
      break; 
     } 

     } 
+0

向我們展示導致無限循環的代碼。很可能你搞砸了你的'掃描儀' - 例如通過在循環內多次實例化它。 –

回答

1

這會再次提示用戶是否爲負數,如果不是,則會跳出循環。

int num; 
    Scanner scan = new Scanner(System.in); 

    while (true) 
    { 
     System.out.println("Please input a positive number: "); 
     num = scan.nextInt(); 

     if (num < 0) 
     { 
     System.out.println("That number is negative."); 
     } 
     else if ((num >= 90 && num <= 110) || (num >= 190 && num <= 210)) 
     { 
     break; 
     } 
    } 
+0

謝謝。我最終通過一些小調整來使用它。 – 3vD

0
boolean value;  
Scanner scan = new Scanner(System.in); 
int num = scan.nextInt(); 

while(num < 0) { 
    System.out.println("Please enter a positive number: "); 
    num = scan.nextInt(); 
} 

if (num >= 90 && num <= 110) { 
     value = true; 
} else if (num >= 190 && num <= 210) { 
     value = true; 
} 

// rest of your code 

,只要運行它放在while循環該數字是否定的ative。

+0

好了,所以我編輯開始(請參閱編輯的原始帖子),我想出了一個'java:14:錯誤:找不到符號' – 3vD

+0

沒有必要創建一個新的'掃描儀'。繼續使用同一個。 –

+0

不要新建一個'Scanner'。你也忘了重新分配'num'給新的輸入(因此給出了一個無限循環) –