Java初学谁来给我解释一下 这段代码

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:25:12
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
int k = ++i;
while (k < 5) {
System.out.print(i);
break;
}

}
}
}

为什么它输出 13 啊?

不是13,是1和3,不信你可以把System.out.print(i);
改为System.out.println(i); 这样换行,你就可以看出第一行是1,第二行是3,也可以改为System.out.print(i+"==="); 你可以看到输出的是"1===3==="

因为你System.out.print(i)将结果打到尾行去了啊,
如果是println那结果就正确聊

上面这程序一共输出两次,分别是数字1和数字3.
第一次,k=++i=1; i=1; k<5 print:1 --->i++ i=2 ->
第二次,k=++i=3; i=3; k<5 print:3 --->i++ i=4 ->
最后 k=++i=5; 不满足while条件,继续执行for循环,i++, i=6不满足for条件-->退出循环