Java的for循环中能否修改循环变量i的值
问题结论
你这种在for循环体内修改循环变量i的写法符合Java语法规范,可以实现「i为偶数时加5」的逻辑,但你当前的代码无法让i执行加5操作后停在7,原因可以通过执行流程验证:
代码执行流程拆解(i从1到触发if逻辑的完整步骤)
- 循环初始化:
i = 1,满足i <= 25的循环条件,进入循环体- i为奇数,不触发
if判断逻辑,循环体执行完毕 - 执行for循环自带的步进逻辑
i++,i变为2
- i为奇数,不触发
- 第二次进入循环:
i = 2满足i <= 25的循环条件- i为偶数,触发
i += 5逻辑,执行后i变为7 - 执行for循环自带的步进逻辑
i++,i最终变为8,进入下一轮循环判断
- i为偶数,触发
调整方案(实现i=2时加5后得到7的效果)
如果希望触发加5操作后i的值为7,你可以去掉for循环的默认步进,把所有i的变更逻辑都放到循环体内,示例代码如下:
for(int i = 1; i<=25; ){ // 去掉默认的i++步进 if((i % 2) == 0){ i += 5; // 触发后i=2+5=7 } else { i++; // 非偶数时才正常+1 } }
内容的提问来源于stack exchange,提问作者CubeTastick N
相关产品推荐
相关产品推荐

