我希望当用户的输入是非整数值、小于1的整数值或大于3的整数值时执行time循环。一旦输入有效,我将使用它。但是,循环仅在用户输入非整数值时起作用。我已经检查了逻辑,我仍然不确定出了什么问题。
代码:
Scanner scnr = new Scanner(System.in);
do {
System.out.println("Please enter an integer value 1-3 for the row.");
while((scnr.hasNextInt() && (scnr.nextInt() > 3)) || (scnr.hasNextInt() && (scnr.nextInt() < 1)) || (!scnr.hasNextInt()))
{
System.out.println("Your input is not valid.");
System.out.println("Please enter an integer value 1-3 for the row.");
scnr.next();
}
row = scnr.nextInt() - 1;
我不完全确定这一点,但一个问题可能是多次调用< code>scnr.nextInt()(因此,您可以将值赋予一个字段以避免这种情况)。一个简单易懂的解决方案是引入一个测试变量,就像@Vikrant在他的评论中提到的那样,例如:
System.out.println("Please enter an integer value 1-3 for the row.");
boolean invalid=true;
int input=-1;
while(invalid)
{
invalid=false;
if(scnr.hasNextInt())
input=scnr.nextInt();
else
invalid=true;
if(input>3||input<1)
invalid=true;
if(!invalid)
break;
System.out.println("Your input is not valid.");
System.out.println("Please enter an integer value 1-3 for the row.");
scnr.next();
}
“while”本身就很好。在这种情况下不需要“做”。以下是您的代码:
Scanner scnr = new Scanner(System.in);
System.out.println("Please enter an integer value 1-3 for the row.");
while((scnr.hasNextInt() && (scnr.nextInt() > 3)) || (scnr.hasNextInt() && (scnr.nextInt() < 1)) || (!scnr.hasNextInt()))
{
System.out.println("Your input is not valid.");
System.out.println("Please enter an integer value 1-3 for the row.");
scnr.next();
}
int row = scnr.nextInt() - 1;
当您希望至少执行一次代码,然后检查“while”条件时,您需要“do”。
此外,nextInt的每次调用实际上都需要输入中的下一个int。所以,最好像这样只使用一次:
int i;
while((i=scnr.hasNextInt() && (i > 3)) || (scnr.hasNextInt() && (i < 1)) || (!scnr.hasNextInt()))
我有一个家庭作业。。。代码如下。。。有几个问题要问。。。提前谢谢。Java初学者。。。如果这看起来很笨拙,请不要笑 有没有办法对我问的每个问题使用我的IF语句,而不必为每个问题更改字符串名称? 有没有办法创建一个方法(?)对于那些如果语句,所以我不必为我问的每一个问题写出来? 如果用户在10秒内没有输入答案,我想有一个定时器提示他们回答,我该怎么做?
我是java的新手,我正在编写这个简短的程序,您可以在其中猜测1到10之间的数字。正确的数字存储为整数。如果您猜测较低的数字,它应该说“正确的数字较高”,如果您猜测较高,它应该说“正确的数字较低”。这是我所拥有的: 所以很明显这是行不通的,因为如果你输入一个更小的数字,它会跳到下一个数字,即使这个数字更大,它也是正确的。那么,我如何解决这个问题,让它检查两个语句呢?抱歉解释得不好。谢了。
问题内容: 我试图通过一次添加一天来遍历while循环,但它甚至第一次都不会访问while循环。while循环中的条件正确吗?当我测试它时,它仅在一种情况下起作用,但在我添加第二种条件时停止了。 问题答案: 它应该是
问题内容: 我在搜索“如何在for循环中提供多个条件?” 但是没有给出直接答案。 经过一番研究,我找到了正确的方法。条件不得以逗号(,)或分号(;)分隔。我们可以使用&&运算符将两个条件结合在一起。 for(初始化; condition1 && condition2;增量) 例: 希望这对新的Java开发人员有所帮助。 问题答案: 您还可以使用“或”运算符,
我们在联系人列表中有一组表示不同人的对象。我们有一个 lookUpProfile 函数,它将 name 作为参数。该函数应检查姓名是否为实际联系人的名字。它将在控制台上打印联系人姓名,如果姓名与联系人的名字匹配,则为 true,否则,它将打印 false。 我想让我的while循环遍历数组,直到nameCheck等于true或者我的长度大于contact length(也就是它到达数组的末尾)。
问题内容: 我有一个小代码问题,它适用于IDLE而不适用于Eclipse,我可以这样写吗: 代替这个: 谢谢。 问题答案: 使用和顺序: 它针对一个元组进行测试,哪个Python将方便而有效地将其存储为一个常量。您还可以使用设置文字: 但只有Python的最新版本(Python 3.2 和更高版本)才会将此视为不变的常量。对于更新的代码,这是最快的选择。 因为这是一个字符,所以您甚至可以使用字符串