当product = 9时,为什么程序不停止?

时间:2016-01-10 03:11:00

标签: java loops while-loop

该程序应打印出3,6和9然后停止并显示“程序结束”,但继续打印3,6,9和12.如何解决?示例代码如下:

int x = 1;
int mul = 3;
int product = 0;
while (product < 10) {
    product = mul * x;
    System.out.println(product);
    x++;
}
System.out.println("End Of Program Reached");

3 个答案:

答案 0 :(得分:5)

您正在打印的product值不是您在while循环中测试的值。第一次while检查是针对product = 0。

交换System.out.println(product);product = mul * x;语句,您可能会理解。

答案 1 :(得分:0)

int x = 1;
int mul = 3;
int product = 0;
while (product < 10) {
product = mul * x;
System.out.println(product);
x++;
}
System.out.println("End Of Program Reached");

如果你试试这个:

第一次迭代

x = 1; MUL = 3;产品= 0;

产品&lt; 10即0 <10因此进入循环。

现在产品= x * mul;即产品= 3 X ++;

第二次迭代

因为3&lt; 10再次进入循环。

x = 2; MUL = 3;产品= 3;

现在product = x * mul = 3 * 2 = 6 和x ++;

第三个循环

x = 3; mul = 3; product = 6

现在产品= 3 * 3 = 9 X ++;

第四次迭代

因为9&lt; 10再次进入循环

x = 4; mul = 3;产物= 9

现在产品= 3 * 4 = 12 X ++;

第五次迭代:

x = 5; mul = 3;产物= 12

现在产品&gt; 10因此不会进入循环。

因此打印3 6 9 12

答案 2 :(得分:-1)

问题是,只有在产品达到12之后,只检查产品是否小于10.例如,当x = 3 product = 9时,它会再次运行循环,在下一次迭代后x = 4时product = 12,当你的while循环看到那个产品时> 10。 试试这个:

int x = 1 ;
int mul = 3;
int product = 0;
while (product < 9) {
    product = mul * x;
    System.out.println(product);
    x++;
}
System.out.println("End Of Program Reached");

将while循环更改为

while (product < 9)

产品达到9,然后打破循环。