我让用户输入3到24之间的3的倍数。然后输出打印出的数字减去3,直到达到0.用户选择15.输出打印出15,12,9,6,3,0。问题是如果用户选择数字17,它将其向下舍入为15并继续执行其余代码。如果它们不输入3的倍数,如何使它无限重复输入?我的代码如下。
maxLineLength + 1
正如您所看到的,我只是在if语句中添加了另一个输入节,但是我不希望这样做。我试图找出if语句保持循环的方法。这是我在if语句中设置的参数吗?或者,如果不满足语句的条件,是否有一个特定的命令使if语句重复?我也在使用Java。
答案 0 :(得分:1)
您可以使用单独的循环初始化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
模式是必要的,因为您需要检查循环中间的循环条件,而不是开始或结束。
答案 1 :(得分:0)
如果您不喜欢vect.resize(4, MyVect2V(2)); // creates a 4 x 2 x 0 vector.
,那么您可以改用while(true) { ... break; ... }
循环。当你想要做一次或多次的事情时,一个do / while循环是常见的 - 特别是至少一次,你不确定多少次。
例如
do { ... } while (flag);
或者这种变化
boolean keepGoing = true;
do {
System.out.println("Enter a multiple of 3 between 3 and 24: ");
n = input.nextInt();
keepGoing = (n < 3 || 24 < n || n % 3 != 0);
} while (keepGoing);
System.out.println("You entered: " + n);