如何使用嵌套的if语句使do-while语句无限循环

时间:2016-10-17 23:27:43

标签: java if-statement

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

maxLineLength + 1

正如您所看到的,我只是在if语句中添加了另一个输入节,但是我不希望这样做。我试图找出if语句保持循环的方法。这是我在if语句中设置的参数吗?或者,如果不满足语句的条件,是否有一个特定的命令使if语句重复?我也在使用Java。

2 个答案:

答案 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);