[英]Correction for runtime error while using Scanner in Java
我必須完成一項上學的作業,才能制作GPA計算器。 它總共有三個類。 在我正在上的課中,我們必須設置多個方法。 在此特定方法(即“ readGradeCount”方法)中,用戶應輸入要為其GPA計算多少個成績。 用戶應該輸入一個正數和一個大於零的數。 我必須驗證用戶輸入,因此我決定使用循環來完成此操作。 當我運行代碼時,它會給我以下內容
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
我不知道這意味着什么,我已經嘗試了很多方法來解決它,但我做不到。 這是我對此方法的代碼:
public static int readGradeCount()
{
int count;
Scanner keyboard;
keyboard = new Scanner(System.in);
do
{
System.out.print("How many grades? ");
while(!keyboard.hasNextInt())
{
System.out.print("Bad value- " + keyboard + "\n");
keyboard.next();
System.out.print("How many grades? ");
}
count = keyboard.nextInt();
}
while (count <= 0);
return count;
}
用戶輸入的值應該位於短語“ Bad value-”之后,但我得到的卻是這行東西。 有什么建議么? 謝謝您的幫助!
您打印出Scanner keyboard
的println
語句,嘗試使用keyboard.next()
中println
,然后刪除keyboard.next()
在你的程序。
您正在打印掃描儀,並且給出了一個非常奇怪的字符串。 嘗試先捕獲鍵盤的值並進行打印。
while (!keyboard.hasNextInt()) {
final String value = keyboard.next();
System.out.print("Bad value- " + value + "\n");
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.