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

Java中for循环条件用==不生效、用<=却正常运行的原因是什么?

Java for循环使用==作为判断条件不执行的原因

核心原因是对Java for循环的执行逻辑理解偏差,for循环会在每次进入循环体前先判断条件是否成立,仅当条件返回true时才会执行循环内的代码,具体执行顺序为:

  1. 执行初始化语句,给循环变量赋初始值
  2. 校验循环条件,条件为true进入循环体,为false直接终止整个循环
  3. 循环体执行完成后,执行迭代语句(比如i++)
  4. 回到步骤2重复判断

两段代码的执行差异分析

使用==作为判断条件的代码

int end = 10;
int start = 0;

for(int i = start; i == end; i++) {
    System.out.println(i);
}

代码中i的初始值为0,第一次判断循环条件i == end等价于0 == 10,返回结果为false,循环直接终止,一次都不会执行,因此没有任何输出。

使用<=作为判断条件的代码

int end = 10;
int start = 0;

for(int i = start; i <= end; i++) {
    System.out.println(i);
}

i初始值为0,第一次判断0 <= 10返回true,进入循环输出0,随后执行i++使i变为1,再次判断条件成立继续执行,直到i自增到11时,11 <= 10返回false,循环终止,最终会依次输出0到10的所有整数,符合预期。

补充说明

如果确实需要用==作为循环判断条件,需要保证循环变量的初始值和判断值相等,比如将i初始值设为10,此时第一次判断10 == 10返回true,会执行一次循环输出10,随后i自增为11,再次判断不成立退出循环。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:30:06