這是我的第一篇文章,所以我不確定格式,也沒有包含完整的程序(如果需要,我可以)我正在編寫一個程序,在該程序中我想在一種方法中使用掃描儀,該方法的工作是接收一個數(shù)字,檢查其有效性,如果它無效,則遞歸并接收一個新數(shù)字。當我運行它時,掃描儀打開,獲取號碼,然后給我錯誤:線程“main”中的異常 java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt( Scanner.java:2117) 在 java.util.Scanner.nextInt(Scanner.java:2076) 在 Password.getGuess(Password.java:26) 在 Password.checkPassword(Password.java:46) 在 Password.getGuess(Password.getGuess(Password.java:26) java:35) 在 Password.checkPassword(Password.java:46) 在 Password.main(Password.java:7)public static int getRange(){ int range = (int) Math.pow(10, difficulty); return range;}public static int getGuess() { Scanner in = new Scanner(System.in); System.out.println("ENTER PASSWORD_"); int guess = in.nextInt(); in.close(); if (guess > (getRange() - 1) || guess < (getRange() / 10 )) { System.out.println("ERROR: INVALID_PASSWORD"); return getGuess(); } else { checkPassword(); return guess; }}
1 回答

繁華開滿天機
TA貢獻1816條經(jīng)驗 獲得超4個贊
嘗試這樣的事情:
boolean validInput = false;
while(!validInput)
{
System.out.println("ENTER PASSWORD_");
int guess = in.nextInt();
if (guess > (getRange() - 1) || guess < (getRange() / 10 ))
{
System.out.println("ERROR: INVALID_PASSWORD");
}
else
{
// this will cause your input loop to terminate
validInput = true;
}
}
checkPassword();
添加回答
舉報
0/150
提交
取消