我是一个完整的初学者,我正在尝试遵循此代码片段背后的逻辑。
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。