该程序应打印出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");
答案 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,然后打破循环。