2015-11-07 74 views
0

我試圖讓用戶在0到10之間輸入任意數量的無限次數,直到他們想要停止。他們通過輸入值-1來停止。到目前爲止,我已經能夠創建當他們輸入正確的值時發生了什麼,但是當他們輸入-1(在while循環中這是一個無效值)時,程序知道它是無效的。我要找的所有程序都是爲了排除可能的無效輸入而排除-1,並使程序停止詢問更多輸入。這裏是我到目前爲止的代碼:如何獲取用戶輸入的數字以退出循環?

int userInput=0; 
    System.out.println("Please enter numbers ranging from 0 to 10 (all inclusive)."); 
    System.out.println("When you want to stop, type and enter -1."); 


    while (userInput <= 10 && userInput >= 0) 
    { 
     userInput=Integer.parseInt(br.readLine()); 

     while (userInput > 10|| userInput < 0) 
     { 
      System.out.println("That number is not in between 0 and 10. Please enter a correct number."); 
      userInput=Integer.parseInt(br.readLine()); 
     } 
     sum=sum+userInput; 
     freq++; 
    } 
    while (userInput == -1) 
    { 
     System.out.println("You have chosen to stop inputing numbers."); 
    } 

對不起,我有限的瞭解:/

回答

0

我建議你試圖做太多與while循環。正如它所寫,你永遠不會擺脫你的第一個。如果輸入0到10之間的數字,它會返回並再次詢問。如果你把其他的東西放在其他東西里面,你可以點擊那個嵌套的while循環,然後它會再次詢問一個數字。考慮流量和你想要它做什麼。這裏有一個簡單的方法去看看它:

System.out.println("Please enter numbers ranging from 0 to 10 (all inclusive)."); 
System.out.println("When you want to stop, type and enter -1."); 
keepgoing = true; 
while(keepgoing) { 
    userInput=Integer.parseInt(br.readLine()); 
    if((userInput <= 10 && userInput >= 0) { 
     sum=sum+userInput; 
     freq++; 
    } 
    else if(userInput == -1) { 
     System.out.println("You have chosen to stop inputing numbers."); 
     keepgoing = false; 
    } 
    else { 
     System.out.println("That number is not in between 0 and 10. Please enter a correct number."); 
    } 
} 

至少我認爲它到達那裏。有很多方法可以控制代碼的流向。知道何時使用哪一個是很好的。

相關問題