我是一个完整的初学者,我正在尝试遵循此代码片段背后的逻辑。
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
如果有人能以简单的方式逐步解释如何阅读代码,我将非常高兴!
我是一个完整的初学者,我正在尝试遵循此代码片段背后的逻辑。
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
如果有人能以简单的方式逐步解释如何阅读代码,我将非常高兴!
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
到控制台并返回回车
(感谢 Chris 修复)}
for
循环代码块结束
} while (x>7);
代码块结束while
,条件是循环将结束:直到变量的值x
大于7
循环才会运行。
UPD:更具体地解释输出结果:
1) 的第一次迭代do loop
。我们有x == 12
:
内部for
循环的迭代:
1.1) w == 9
, 9 < 12
=> 输出9
到控制台
1.2) w++
=> w == 10
, 10 < 12
=> 输出10
到控制台,
1.3) w++
=> w == 11
, 11 < 12
=> 输出11
到控制台,
1.4) w++
=> w == 12
, 12 == 12
=> 结束for
循环
2)for
循环结束。--x
=> x == 11
,输出11
到控制台并返回回车,所以我们有行9 10 11 11
3) 开始循环的新迭代,do ... while
依此x == 11
类推,直到x
等于 7。
首先,片段的正确格式将帮助您理解它:)
int x = 12;
do {
for (int w=9; w<x; w++)
System.out.print(w+” ”);
--x;
System.out.println(x);
} while (x>7);
很难一步一步地描述它,最好使用调试器运行它。但换句话说,程序如下:
如果 x 大于 7,则执行 do/while 循环。for 循环在 do/while 循环内运行。for 循环声明一个整数 w 并将 w 赋值为 9。