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

Java程序执行自增运算符后仅输出2未触发条件语句的原因是什么?

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int j = 1;
    int i = 3;
    System.out.println(++j);

    if((j==1) && (i==3)) {
        System.out.println("j is 4 and i is 7");
    }

    if((j==1) || (i==4)) {
        System.out.println("j is 4 or i is 4");
        display();
    }
}
运行现象原因说明
  • 变量初始化阶段j=1、i=3,执行System.out.println(++j)时,++j是前置自增运算符,会先对j执行+1操作(j变为2)再输出值,因此控制台首先输出2,此时j的取值已经更新为2。
  • 第一个if判断使用短路与运算符&&,运算规则为左侧条件为false时,直接判定整个表达式为false,不会执行右侧条件判断。此处左侧j==1的判定结果为false,因此整个if条件不成立,分支内代码不会执行。
  • 第二个if判断使用短路或运算符||,运算规则为左侧条件为false时,会继续判断右侧条件,只有所有条件都为false时整个表达式才为false。此处左侧j==1判定为false,右侧i==4判定也为false(i的取值始终为3未被修改),因此整个if条件不成立,分支内代码也不会执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:57:03