gpt4 book ai didi

java - 如何让 do-while 语句与嵌套 if 语句无限循环

转载 作者:行者123 更新时间:2023-12-01 09:22:17 25 4
gpt4 key购买 nike

我让用户输入 3 到 24(含)之间的 3 的倍数。然后输出打印出数字减去 3,直到达到 0。例如,用户选择 15。输出打印出 15,12,9,6,3,0。问题是,如果用户选择数字 17,它会将其四舍五入为 15,然后继续执行其余代码。如果输入的不是3的倍数,如何让它无限重复输入?我的代码如下。

do{
System.out.print("Enter a multiple of 3: ");
//We use the variable n to hold the multiple of 3, like the heading says to do.

n = input.nextInt();
if (n % 3 !=0 || n >= 25) {
System.out.println("Error: Enter a multiple of 3 between 3 and 24, inclusive.");
n = input.nextInt();
}
/**
* X = n /3, this gives us the base number of the multiple of 3 to use and figure out the
* values of n->0 by 3's.
*/
for(x = n / 3; x <= 8 && x >=0; x--){
int three = 3 * x;
System.out.printf(three + "\t");

}

}while(x >= 0);

正如您所看到的,我只是在 if 语句中放置了另一个输入部分,但我不想这样做。我正在尝试找出一种方法让 if 语句保持循环。是我在 if 语句中设置的参数吗?或者是否有特定的命令可以在不满足语句条件的情况下使 if 语句重复?我也使用 Java。

最佳答案

您可以使用单独的循环来初始化n。 (我不确定你的外循环是做什么的,所以我删除了它。)

int n;

while (true) {
System.out.print("Enter a multiple of 3: ");

n = input.nextInt();
// Validate input.
if (n % 3 == 0 && n < 25 && n > 0) {
// Input is good.
break;
}
// Input is bad. Continue looping.
System.out.println("Error: Enter a multiple of 3 between 3 and 24, inclusive.");
}

for (x = n / 3; x <= 8; x--) {
int three = 3 * x;
System.out.printf(three + "\t");
}

if--break 模式是必要的,因为您需要检查循环中间的循环条件,而不是开始或结束。

关于java - 如何让 do-while 语句与嵌套 if 语句无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097215/

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