深入理解for循环内部执行顺序(案例+详解)

作者在近日使用for循环的过程中遇到了一个疑问,给大家分享出来,依旧尽量通过白话解释,希望能为大家提供一点点帮助

int a = 0,b = 0;
for (a = 0; a < 1; a++){
    System.out.println(a);
}
for (b = 0; b < 1; ++b){
    System.out.println(b);
}

两个循环,一个使用a++自增,一个使用++b自增,按照作者原先的理解,基于i++与++i的特性,此时打印出的a应该为0,b应该为1

不过实际情况却大不相同,两者运行出来都打印的是0

作者于是对于for循环的执行顺序产生了疑问,难道不是按顺序将小括号内部的语句执行完毕再执行循环体内部语句吗?

经过作者多方查证,实际上for循环语句的执行顺序按照以下语句为:语句1->语句2->循环体内部语句->语句3->语句2......

for(语句1;语句2;语句3){

  循环体内部语句

}

即逻辑为:先进行变量的初始化,之后判断是否符合条件,若符合,执行循环体,循环体执行结束再进行自增,如此结束一次循环,再次判断是否符合条件,等等。

因此,在for循环的自增中,不论使用i++还是++i,都是在执行完循环体之后才进行的自增,因此本文最开头的例子运行结果就像上面截图一样

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值