gpt4 book ai didi

java - java while 循环中的多个 and/or 条件

转载 作者:行者123 更新时间:2023-12-01 10:23:11 25 4
gpt4 key购买 nike

我希望当用户输入的是非整数值、小于1的整数值或大于3的整数值时执行while循环。一旦输入有效,我就会使用它。但是,该循环仅在用户输入非整数值时才起作用。我已经检查了逻辑,但我仍然不确定哪里出了问题。

代码:

  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;

最佳答案

“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 - java while 循环中的多个 and/or 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35460853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com