我正在尝试添加以下扫描仪验证,如下所示;
public void promptFilmRating() {
while (!filmScanner.hasNextInt()) {
System.out.println("Please enter a number instead of text.");
filmScanner.next();
}
while (filmScanner.nextInt() > 5 || filmScanner.nextInt() < 1) {
System.out.println("Your number is outside of the rating boundaries, enter a number between 1 and 5.");
filmRatingOutOfFive = filmScanner.nextInt();
}
}
但是,当使用与值验证之间的整数相关的代码时,需要重复输入才能记录原始输入,而且我不确定如何更正此错误,任何建议都很棒。
最佳答案
我相信您的问题出在while (filmScanner.nextInt() > 5 || filmScanner.nextInt() < 1) {
上。
每次对filmScanner.nextInt()
的调用都会向流请求一个新的整数,因此,在while语句中两次调用.nextInt()
时,您将要求两个数字。
您可能要考虑将两个循环合并为一个。
例:
int myNum;
do {
myNumb = filmScanner.nextInt();
} while (myNum > 5 || myNum < 1);