我是一个完全的初学者,我正在尝试遵循此代码段背后的逻辑。
int x = 12;
do {
for (int w=9; w<x; w++)
System.out.print(w+” ”);
--x;
System.out.println(x);
}while (x>7);
当我运行它时,答案如下:
9 10 11 11
9 10 10
9 9
8
7
如果有人能够以一种简单的方式逐步解释如何阅读代码,我将非常高兴!
答案 0 :(得分:3)
int x = 12;
声明新的局部变量,名为x
do {
开始新的do...while
循环
for (int w=9; w<x; w++)
开始新的for
循环,它会迭代,直到变量w
的值 ,然后变量x
的值。在此循环的每次迭代之后,变量w
将增加其值(w++
)。变量w
的初始值为9
(int w=9
)。
System.out.print(w+” ”);
这个打印出来以控制变量w
的当前值加上之后的一个空格
--x;
此值会降低x
变量的值。它就是操作--
System.out.println(x);
将x
变量的值输出到控制台并返回car
(感谢Chris克服)}
for
循环代码块结束
} while (x>7);
while
代码块的结尾,其中循环将结束的条件:直到变量x
的值更多,然后7
循环才会运行。
UPD:更具体地解释输出结果:
1)do loop
的第1次迭代。我们有x == 12
:
内部for
循环的迭代:
1.1)w == 9
,9 < 12
=&gt;输出9
到控制台
1.2)w++
=&gt; w == 10
,10 < 12
=&gt;将10
输出到控制台,
1.3)w++
=&gt; w == 11
,11 < 12
=&gt;将11
输出到控制台,
1.4)w++
=&gt; w == 12
,12 == 12
=&gt;结束for
循环
2)for
循环结束。 --x
=&gt; x == 11
,将11
输出到控制台并返回回车符,因此我们有一行9 10 11 11
3)使用do ... while
开始x == 11
循环的新迭代,依此类推,直到x
等于7。
答案 1 :(得分:0)
首先,正确格式化代码段可以帮助您理解它:)
int x = 12;
do {
for (int w=9; w<x; w++)
System.out.print(w+” ”);
--x;
System.out.println(x);
} while (x>7);
难以一步一步地描述它,使用调试器运行它会更好。但换句话说,该计划如下:
答案 2 :(得分:0)
如果x大于7,则运行do / while循环.for循环在do / while循环内运行。 for循环声明一个整数w并赋值w为9. w