无法理解错误:表示表达式的非法开始(逻辑运算符)



这是弹出的错误:

Riccio_Lesson5.java:88: error: illegal start of expression
}else if(bmi == 18.5 & <= 24.9){
^
Riccio_Lesson5.java:91: error: illegal start of expression
}else if(bmi == 25.0 & <= 29.9){
^

这是此代码:

if(bmi < 18.5){
System.out.print(", indicating your weight is in thenUnderweight category for adults of your height.");
System.out.print("nnTalk with your healthcare provider to determine possible causes of underweight and if you need to gain weight.");
}else if(bmi == 18.5 & <= 24.9){
System.out.print(", indicating your weight is in the nNormal category for adults of your height.");
}else if(bmi == 25.0 & <= 29.9){
System.out.print(", indicating your weight is in the Overweight category for adults of your height.");
}else if(bmi >= 30.0){
System.out.print(", indicating your weight is in the Obese category for adults of your height.");
}

我想说的是,如果 bmi 等于 18.5 或小于或等于 24.9,您的 bmi 将显示为正常/如果您的 BMI 等于 25 或小于/等于 29.9,则您超重。

在Java中,你不能像在自然语言中那样省略比较表达式的左侧;它总是需要明确的。 "BMI 大于或等于 18.5 且小于或等于 24.9"必须翻译为:

bmi >= 18.5 && bmi <= 24.9

请注意,我在这里使用了>=来捕获大于或等于 18.5 的值。 我还使用了&&,它通常用于逻辑连词,因为它的短路行为,尽管&对于逻辑运算来说效果很好。

您可能还想使用bmi < 25.0而不是bmi <= 24.9,因为您的下一个else if条件以bmi >= 25.0开头(或将以 开头),并且您将希望捕获诸如 24.95 之类的值,这些值不会被当前逻辑捕获。

对于下一个else if条件,需要进行类似的更改。

最新更新