You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何for循环未在循环体内使用初始化变量仍能正常执行?

为什么未使用循环变量i,for循环仍能执行指定次数?

哈哈,这个问题挺典型的,咱们来一步步捋清楚这个Java for循环的运行逻辑~

首先先把你的代码贴出来方便参考:

for(int i = 0; i < 20 ; i ++) { 
    System.out.println("hey"); 
}

其实for循环的执行逻辑和你在循环体里用不用i完全没关系,核心在于它的三个核心控制部分,这三部分会独立把控循环的次数:

  • 第一步:初始化表达式 int i = 0:这部分只会在循环启动前执行一次,作用是创建循环变量i并给它赋初始值0。
  • 第二步:条件判断表达式 i < 20:每次准备执行循环体之前,都会先检查这个条件:
    • 如果条件为true(也就是i的值还小于20),就执行大括号里的循环体(也就是打印"hey");
    • 如果条件为false(i等于20的时候),直接跳出循环,不再执行循环体。
  • 第三步:更新表达式 i++:每次循环体执行完毕后,都会自动执行这一步,把i的值加1。

你看,整个循环的次数是由i的初始值、条件判断的阈值,还有更新规则共同决定的——哪怕你在循环体里根本没用到i,这三个步骤还是会按部就班地运行:

从i=0开始,满足i<20,打印"hey",然后i变成1;
接着i=1,还是满足条件,再打印,i变成2;
……
直到i=19的时候,执行完循环体,i变成20;
下一次检查条件20<20不成立,循环终止。

算下来刚好执行了20次打印,完全和循环体里用不用i没关系~

举个更直观的例子:如果把条件改成i < 5,不管你循环体里打印什么、用不用i,都会严格执行5次。i在这里的角色更像是一个"隐形计数器",负责帮你把控循环的次数,哪怕你不需要在循环里用到它的具体值。

内容的提问来源于stack exchange,提问作者SAI RAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:42:00