我在WHILE語句中嵌套了一個IF ELSE語句,但是對於爲什麼在ELSE之前解釋WHILE(當IF失敗時)感到困惑。要求用戶輸入1-10(包含)的數字。如果該數字在該範圍內,則程序結束。如果超出範圍,我想顯示一個錯誤,然後提示他們再次輸入一個數字。WHILE在評估ELSE之前重複
如果我在WHILE之前加上「提示符」,它會很好地工作,但是我必須再次將其放入ELSE語句中,以便它再次出現。我發現這question,但它似乎沒有回答我遇到的問題。我承認是Java新手,所以我很抱歉如果我錯過了Java的一些基本方面。
import java.util.Scanner;
public class Rangecheck {
private static int userNumber; //Number input by user
private static boolean numberOK = false; //Final check if number is valid
//String that will be reused in the DO statement
private static String enterNumber = "Please enter a number from 1 to 10: ";
public static void main(String[] args) {
//Print string
while(!numberOK) // Repeat until the number is OK
{ System.out.println(enterNumber);
Scanner input_UserNumber = new Scanner(System.in); //input integer
userNumber = input_UserNumber.nextInt();
if (10>= userNumber && userNumber >= 1) //Check if 10>=input>=1
{
/*
** If number was valid, congratulate the user and mark numberOK true
*/
System.out.println("Good job! The number you entered is "+userNumber+".");
numberOK = true; // Congratulate user/exit loop if successful
}
else ; //if (10 < userNumber && userNumber < 1)
{
System.err.println("The number entered was not between 1 and 10!");
System.err.print(enterNumber); // Error; user retries until successful
}
}
}
}
我期望的System.err.println()
在else
聲明進行評估,然後while
進行評估,因此,這得到返回:
The number entered was not between 1 and 10!
Please enter a number between 1 and 10:
我有點繞這個工作由在while
之前放入enterNumber,然後在錯誤後立即在else
語句中放第二個 println
。它回報了我的期望,但我相信我從根本上誤解了一些東西。
嘛別的評價?你還怎麼解釋說'輸入的數字不在1到10之間!「'是否打印? – 2014-09-19 01:18:10
嘗試在應用程序的開始部分放置一個斷點,然後逐行遍歷每一行以幫助您理解執行順序 – StriplingWarrior 2014-09-19 01:20:43
使用掃描程序時看起來像是一個問題請提供您的完整代碼應用程序來檢查錯誤的位置 – 2014-09-19 01:25:00