該程序接受用戶輸入,該用戶輸入應該是大於0的整數。如果用戶不這樣做,他會被通知錯誤並被重新提示。輸入正確的輸入後,返回該值。什麼是最好的方法來做到這一點?以下代碼是我的嘗試,但不起作用。對於這樣一個簡單的任務似乎不必要的複雜。什麼是最簡單的方法來檢查輸入的數字是否是一個正整數,如果不是,再次提示?
System.out.println("Please enter an integer greater than 0:");
Scanner scan = new Scanner(System.in);
int red = -1;
do
{
try
{
red = scan.nextInt();
}catch(InputMismatchException e)
{
System.out.println("Number must be an integer");
scan.nextLine();
if(red < 1)
System.out.println("Number must be more than zero");
else
break;
}
}while(true);
return red;
有時候,我不知道該怎麼把我的問題,因爲我已經知道代碼不起作用 - 所以,如果有別的東西,我應該告訴請讓我知道。
其中的一個問題是'nextInt'不會消耗換行字符,這意味着你將在第一過去後,一個無限循環結束了...而且我不知道'scananner'是;) – MadProgrammer