java - 为什么这个 for 循环会给出这个输出?
问题描述
为什么是以下代码的输出:13 15 17
我认为应该是:15 17 19
这是代码:
package com.example.barker;
class dog {
}
public class Bark {
public static void main(String[] args) {
Bark o = new Bark();
o.go();
}
void go(){
int y =7;
for(int x = 1; x<8; x++) {
y++;
if(x>4) {
System.out.print(++y + " ");
}
}
}
}
解决方案
我认为安维尔是对的。
我将解释代码的工作以得到理解。
第一的
y=7
x=0
在第一次迭代之后
y=8 (y++;) 和 x=1 (int x = 1;) (不打印,因为 x 不大于 4)
第二次迭代后
y=9 (y++;) 和 x=2 (x++;) (不打印,因为 x 不大于 4)
第三次迭代后
y=10 (y++;) 和 x=3 (x++;) (不打印,因为 x 不大于 4)
第四次迭代后
y=11 (y++;) 和 x=4 (x++;) (不打印,因为 x 不大于 4)
第五次迭代后
y=12 (y++;) 和 x=5 (x++;)
现在 x 大于 4 并进入System.out.print(++y + " ");
这里你写 ++y ,表示预增量
即,递增 y 并打印
即,y=13 和 x=6 打印(13)
下一次迭代后
y=14(y++;) 并且在打印 y 的值之前执行++y 即 y=15 (++y;) 打印(15)
下一次迭代后
y=16(y++;) 并且在打印 y 的值之前执行++y 即 y=17 (++y;) 打印(17)
所以输出是13 15 17
感谢和快乐的编码。
推荐阅读
- r - 当两个定界符在字符串中多次出现时,提取两个定界符之间的所有文本
- amazon-web-services - 无法将缩略图上传到 Amazon S3 目标存储桶
- html - 如何使填充都相同?
- python - 带替换的 Python 条件枚举
- html - 用多种颜色填充文本
- ios - 在 ionic 应用程序中使用 for 循环适用于 linux 但不适用于 ios
- laravel - v-for循环Vue中的动态V模型名称
- python - 在python中填充n级PostgreSQL表
- kotlin - 验证 List 的值
存在于 Json 对象中并返回 True 或 False - javascript - 在 lighntingChart 中拟合折线图