为何Java代码无报错但控制台无输出?求问题排查
问题排查与修复方案
你的代码控制台无输出的核心原因是:变量weight的值116没有匹配任何一个分支的条件:
- 第一个分支判断
weight < 116:116不满足“小于116”的条件 - 第二个分支判断
weight > 116 && weight < 130:116不满足“大于116”的条件 - 后续分支的数值范围和116相差更远,自然也不会触发
根据你给出的体重规则,需要调整分支的边界条件,确保所有体重值都能匹配到对应的分支。修复后的代码如下:
public class Practice11 { public static void main(String[] args) { int weight = 116; if (weight < 116) { System.out.println(" Eat 5 banana splits! "); } else if (weight >= 116 && weight <= 130) { // 包含116和130两个边界值 System.out.println(" Eat a banana split! "); } else if (weight >= 131 && weight <= 200) { // 包含131和200两个边界值 System.out.println(" Perfect! "); } else { // 覆盖所有大于200的情况,同时兜底未考虑到的异常数值 System.out.println("Plenty of banana splits have been consumed!"); } } }
额外优化说明:
- 将最后一个
else if (weight > 200)改为else,既能覆盖所有大于200的情况,也能处理任何未被前面分支匹配到的极端数值 - 所有区间使用
>=或<=,确保规则里的“至”包含边界数值,彻底避免数值遗漏的问题
内容的提问来源于stack exchange,提问作者Honorine I
相关产品推荐
相关产品推荐

