在java中执行while循环

时间:2011-03-06 03:13:39

标签: 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);
  1. 如果限制是15,输出会是多少?

  2. 使用for循环编写一段代码,无论有什么值限制,它都完全相同。

  3. 我不完全确定为什么system.out中的引用是这样的。

    感谢任何帮助

6 个答案:

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