我想在while循环中使用单个扫描仪输入作为多个条件,其中可以检查输入是否正确,如果不正确,则重新输入输入值。
while(scannerInput is a int AND scannerInput is > than 0 AND scannerInput is < 10)
{
//CODE
}
while (scaner.hasNextInt() && scaner.nextInt() > 0 && scaner.nextInt() < 10) {
}
是否有一种方法来存储第一个输入并一次又一次地重用它,或者是否有一个更好的解决方案来解决我的问题?
调用scanner.nextint()
会使扫描器读取其输入的位置提前,因此第二次读取可能会产生不同的数字,或者在只有一个int
可用时引发异常。为了解决这种情况,您可以引入一个变量来保存第二次检查的值:
int tmp;
while (scaner.hasNextInt() && (tmp = scaner.nextInt()) > 0 && tmp < 10) {
...
}
第二个子表达式(tmp=scaner.nextint())
从扫描程序
读取下一个整数值,并将其存储在临时变量tmp
中。之后,将该值与零进行比较,最后将相同的值与10进行比较。
赋值是在检查TMP<10
之前执行的,因为&&
表达式的部分是按从左到右的顺序处理的。
while (scaner.hasNextInt()) {
int val = scaner.nextInt();
if (val < 0 || val >= 10) {
break;
}
...
}
我的想法是不断提示您输入新的输入直到正确为止的代码
实现这一点的常见方法是使用do
/while
循环:
int val = -1;
do {
System.out.print("Enter an int: ");
if (scanner.hasNextInt()) {
val = scanner.nextInt();
} else {
scanner.nextLine();
}
} while (val < 0 || val >= 10);
我需要创建一个简单的游戏,其中创建了一个随机数,用户必须猜测数字输入到扫描仪。如果他们的猜测太高,系统会告诉他们猜测得更低,如果猜测得太低也是一样。 我正在使用while循环,但我不知道如何连续调用扫描器,以便用户可以不断猜测。以下是我到目前为止的代码:
我开发了一个字符排序器,我想每次字符串排序后提示用户输入一个新的字符串。我遇到的问题是扫描仪一直在扫描用户的第一个输入。如果我使用scanner.next(),它不会计算输入末尾的空白,这不是解决方案。 这是while循环的开始。一旦代码完成,它将再次从“inputtext”开始。
问题内容: 我试图通过一次添加一天来遍历while循环,但它甚至第一次都不会访问while循环。while循环中的条件正确吗?当我测试它时,它仅在一种情况下起作用,但在我添加第二种条件时停止了。 问题答案: 它应该是
我需要在while循环之前输入一个用户,这样它就会知道程序是否想继续。问题是while条件的更内部看不到扫描仪之前输入的一行。有什么建议吗?
问题内容: 我必须在 while 循环中显示Scanner输入:用户必须插入输入,直到他写下“ quit”为止。因此,我必须验证每个输入以检查他是否写出“ quit”。我怎样才能做到这一点? 这行不通。如何验证每个用户的输入? 问题答案: 问题是nextLine() “使该扫描程序前进到当前行之外”。因此,当您调用该条件并且不保存返回值时,您将丢失用户输入的那一行。对第3行的调用返回另一行。 您可