[英]Do while loop in java
给定以下带有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
的引用是这样的。
任何帮助表示赞赏
我发现最好的方法是拿出铅笔和纸逐行浏览代码。 为了帮助进行可视化,请画出一些方框,以表示您拥有哪些变量以及变量中存储了什么。
{
y += z; // x[11] y[48] z[14]
z++; // x[11] y[48] z[15]
x++; // x[12] y[48] z[15]
}
然后,只需遍历循环,直到遇到while的情况为止。
传统的for循环结构是for(start; end condition; increment)
。 希望能有所帮助。
您的代码具有智能引号字符( “
),它们不是普通引号,并且Java语言无法识别。
将“
字符更改为"
。
我认为最好自己尝试一下。 一些技巧:
1)do {}(while)循环首先执行该块,然后检查条件。 在您的问题中,如果limit为14(当x = 13为true时,x <14),那么它也会执行第14次。
2)while(){}; 在执行该块之前进行循环检查。
3)for循环与while相同:for循环的步骤是:
1)设置计数器2)执行块3)检查条件4)增加计数器语句
希望这可以帮助
do ... while循环将始终执行一次,一旦执行,将检查while()中的条件是否为true。 如果为true,它将再次执行(从do开始)。
您可能还想看看如果不给它一个值,一个int类型变量将被初始化为什么。 这也涉及到这个问题。
希望能有所帮助。
我建议你做一个这样的表:
x y z limit
Initialization 11 34 14
Iteration 1
Iteration 2
...
现在,逐步进行循环,逐次迭代并观察发生了什么。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.