给出以下带有do while循环的代码段:
int x = 11, y = 34, z = 14, limit;
do {
y + = z;
z++;
x++;
} while (x < limit);
System.out.println("x=" + x + " y=" + y + " z=" + z);
如果限制是15,输出会是多少?
使用for循环编写一段代码,无论有什么值限制,它都完全相同。
我不完全确定为什么system.out
中的引用是这样的。
感谢任何帮助
答案 0 :(得分:2)
我发现最好的方法是取出铅笔和纸,然后逐行查看代码。为了帮助实现可视化,请绘制一些框,表示您拥有的变量以及存储在其中的内容。
{
y += z; // x[11] y[48] z[14]
z++; // x[11] y[48] z[15]
x++; // x[12] y[48] z[15]
}
然后只需按照循环进行操作直到遇到问题为止。
传统的for循环结构是{{1}}。希望有所帮助。
答案 1 :(得分:1)
您的代码具有智能引号字符(“
),这些字符不是普通引号,并且无法被Java语言识别。
将“
个字符更改为"
。
答案 2 :(得分:1)
我认为尝试自己会更好。 一些提示:
1)do {}(while)循环首先执行块,然后检查条件。在你的问题中,如果limit是14(当x = 13时,x <14则为真),那么它也将执行第14次。
2)while(){};在块执行之前循环检查。
3)for循环与while相同:for循环的步骤为:
1)设置计数器 2)执行块 3)检查条件 4)递增计数器声明
希望这有帮助
答案 3 :(得分:1)
do ... while循环将始终执行一次,一旦执行,将检查while()中的条件是否为真。如果是真的,它将再次执行(从do开始)。
如果你没有给它一个值,你可能还想看看 int 类型变量将被初始化为什么。这也引起了这个问题。
希望有所帮助。
答案 4 :(得分:1)
我建议你做一个这样的表:
x y z limit
Initialization 11 34 14
Iteration 1
Iteration 2
...
现在逐步完成循环,迭代迭代并观察发生的情况。
答案 5 :(得分:1)
int x = 11, y = 34, z = 14, limit;
//You must have initialize limit variable
// If you don't do that, code will not be compilable.
// You must initialize local variables before use.
limit = 15; //Initialize limit variable
do {
y + = z;
z++;
x++;
//If you want to trace values at each iteration then
//System.out.println("x = " + x + " y = " + y + " z = " + z);
} while (x < limit);
System.out.println("x = " + x + " y = " + y + " z = " + z); //Edited line