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

Java程序未执行if-else if语句?新手技术求助

问题分析与修复方案

嘿,我一眼就瞅出问题出在哪了——你的else if分支里的条件逻辑写反啦!

咱们先看你这段有问题的代码:

else if((month == 2) && (day < 1 && day > 28)) { 
    System.out.println("Invalid day!"); 
}

这里的day < 1 && day > 28是个永远不可能成立的条件,因为一个数字根本没法同时小于1又大于28啊!这就导致当你输入2月30号的时候,这个分支永远不会被触发,程序自然就没反应了。

修复方法

把条件里的&&改成||就搞定了,正确的逻辑应该是“日期小于1 或者 日期大于28”:

if((month == 2) && day >= 1 && day <= 28) { 
    System.out.println(month + "/" + day + " is in the Winter season."); 
} else if((month == 2) && (day < 1 || day > 28)) { 
    System.out.println("Invalid day!"); 
}

额外优化建议

为了让代码更简洁易读,你还可以把重复的month == 2判断提取出来,用嵌套if的方式:

if (month == 2) {
    if (day >= 1 && day <= 28) {
        System.out.println(month + "/" + day + " is in the Winter season.");
    } else {
        System.out.println("Invalid day!");
    }
}

这样就不用重复写两次month == 2,逻辑也更清晰,以后维护起来也方便~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:54:11