含嵌套if-else的do-while循环代码输出及语法疑问求助
拆解你的Java代码逻辑
嘿,我来帮你把这段代码的逻辑掰扯清楚,先解决你最懵的那个点:
你可别搞混啦,x + " " + y + " " + z根本不是把三个变量相加,这是Java里的字符串拼接操作!因为这里夹着字符串格式的空格" ",Java会自动把整数类型的x、y、z转成字符串,然后把它们和空格按顺序串起来,最后输出的就是三个变量值用空格分开的一行内容。
接下来咱们一步一步模拟每一轮循环的执行过程,就能完全看懂输出的逻辑了:
初始变量值:x=10, y=11, z=3
第1次循环(do-while是先执行循环体,再判断条件)
- 先执行打印语句,输出:
10 11 3 - 判断
y > z:11>3是true,所以执行y = y-5,y变成6 - 执行
x = x-2,x变成8 - 检查while条件
x > 0:8>0成立,继续下一轮循环
第2次循环
- 打印输出:
8 6 3 - 判断
y > z:6>3是true,y=6-5=1 - x=8-2=6
- 6>0成立,继续循环
第3次循环
- 打印输出:
6 1 3 - 判断
y > z:1>3是false,所以执行y = y+3,y变成4 - x=6-2=4
- 4>0成立,继续循环
第4次循环
- 打印输出:
4 4 3 - 判断
y > z:4>3是true,y=4-5=-1 - x=4-2=2
- 2>0成立,继续循环
第5次循环
- 打印输出:
2 -1 3 - 判断
y > z:-1>3是false,y=-1+3=2 - x=2-2=0
- 检查while条件
x > 0:0>0不成立,循环结束
最后执行System.out.println("Bye"),输出Bye
把所有打印内容连起来就是你看到的结果:10 11 3 8 6 3 6 1 3 4 4 3 2 -1 3 Bye(注:实际代码里每次println会换行,你看到的是把所有输出内容连续展示了)
内容的提问来源于stack exchange,提问作者Robbie
相关产品推荐
相关产品推荐

