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

Java出现bad operand types for binary operator '>='报错该怎么解决?

Java BMI计算程序错误修复方案

核心报错原因

bad operand types for binary operator '>='报错的根因是Java不支持a <= b >= c这类链式比较写法:

Java运算按从左到右顺序执行,会先计算bmi <=18.5得到boolean类型结果,再尝试用boolean值和24.9做>=比较,两种数据类型不匹配,因此抛出操作数类型错误。

除此之外你的代码还存在多处语法、逻辑错误,完整修复内容如下:

修复清单

  • 修正比较表达式写法:正常BMI区间判断需要用逻辑与&&拼接两个独立条件,同时修正逻辑错误:正常BMI范围是大于等于18.5且小于等于24.9,原写法逻辑是同时小于等于18.5且大于等于24.9,无任何数值能满足该条件
    修复后的判断行:else if (bmi >= 18.5 && bmi <= 24.9)
  • 修正变量类型错误:BMI为带小数的数值,不能用int类型存储,修改为double bmi
  • 修正拼写&基础语法错误:
    • 所有System.out.print语句末尾补充分号;
    • 拼写错误Systen修正为System
    • System.out,print的逗号修正为英文点.
    • console.nextINt()修正为console.nextDouble(),适配double类型的BMI输入
  • 修正超重区间逻辑错误:原bmi <=25.0会和前面的正常区间冲突,修改为else if (bmi >= 25.0)

修复后完整可运行代码

import java.util.Scanner;

public class BMICalculator {
    public static void main(String[] args) {
        double bmi;
        Scanner console = new Scanner(System.in);
        
        System.out.print("Measure your height and weight.");
        System.out.print("Then Calculate your BMI.");
        System.out.print("Enter your BMI value: ");
        bmi = console.nextDouble();
        
        if (bmi <= 18.4) {
            System.out.println("You're under weight, you need to gain more weight!");
        } else if (bmi >= 18.5 && bmi <= 24.9) {
            System.out.println("You're normal, Congrats!");
        } else if (bmi >= 25.0) {
            System.out.println("You're Overweight, you need to lose some weight.");
        }
        
        console.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:36:03