簡體   English   中英

在Java中使用掃描儀時糾正運行時錯誤

[英]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 keyboardprintln語句,嘗試使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM