[英]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.