我想扫描一个整数,并把它放在一个while循环,以便如果输入了一个无效的条目,程序将要求输入另一个整数,但当我运行它时,它不允许我输入和新的整数,只是多次打印无效条目。
do {
System.out.println("Maximum number of Students:");
if(input.hasNextInt()) {
maxstudents = input.nextInt();
if (maxstudents > 0) {
break;
}
} else {
System.out.println("Invalid entry");
}
} while(true);
do {
System.out.println("Maximum number of Students:");
if(input.hasNextInt()) {
maxstudents = input.nextInt();
if (maxstudents > 0) {
break;
}
}
else {
System.out.println("Invalid entry:"+scanner.next());
}
}while(true);
@Nicholas K是对的。但是我为您提供另一个针对负整数情况的警告消息,并将此代码移动到单独的方法中。
public static int getMaxStudents(Scanner scan) {
do {
System.out.print("Maximum number of Students: ");
if (scan.hasNextInt()) {
int maxStudents = scan.nextInt();
if (maxStudents > 0)
return maxStudents;
}
System.out.println("Enter a valid positive integer number");
scan.nextLine(); // <-- this is mandatory
} while (true);
}
将else更改为:
else {
System.out.println("Invalid entry");
input.nextLine();
}
因此,在无效输入时,您需要将光标移动到下一行,以便可以再次接受输入。
我试图扫描一个整数,并运行一个循环来扫描字符串,直到那个整数。但这段代码跳过了第一个字符串... 有解决办法吗?
我需要创建一个简单的游戏,其中创建了一个随机数,用户必须猜测数字输入到扫描仪。如果他们的猜测太高,系统会告诉他们猜测得更低,如果猜测得太低也是一样。 我正在使用while循环,但我不知道如何连续调用扫描器,以便用户可以不断猜测。以下是我到目前为止的代码:
这是我目前所掌握的:
我开发了一个字符排序器,我想每次字符串排序后提示用户输入一个新的字符串。我遇到的问题是扫描仪一直在扫描用户的第一个输入。如果我使用scanner.next(),它不会计算输入末尾的空白,这不是解决方案。 这是while循环的开始。一旦代码完成,它将再次从“inputtext”开始。
我想在while循环中使用单个扫描仪输入作为多个条件,其中可以检查输入是否正确,如果不正确,则重新输入输入值。 是否有一种方法来存储第一个输入并一次又一次地重用它,或者是否有一个更好的解决方案来解决我的问题?
正如这里看到的,有两种方法可以重复某事很多次。但是它似乎对我不起作用,所以我想知道是否有人能帮忙。 基本上,我想重复以下3次 根据链接所说,这就是我所做的, 但这似乎行不通。while循环只重复一次,而不是三次。有人能帮我解决这个问题吗?