java - 如何在没有if的情况下修复java错误
问题描述
我正在制作一个 bmi 计算器,但我无法做出正确的 if else 语句。我不明白 else if 部分的错误。它表示没有“if”的错误“else”。if-else 语句的正确结束是什么。
if (choices == ('e' || 'E'))
System.out.print("ENTER YOUR WEIGHT IN POUNDS(lb): ");
weighte = input.nextDouble();
System.print.out("ENTER YOUR HEIGHT IN FEET(ft): ");
heighte = input.nextDouble();
bmi = (weighte / (heighte * heighte));
else if (choices == ('m' || 'M'));
System.out.print("ENTER YOUR WEIGHT IN KILOGRAMS(kg): ");
weightm = input.nextDouble();
System.out.print("ENTER YOUR HEIGHT IN CENTIMETERS(cm): ");
heightm = input.nextDouble();
bmi = (weightm / (heightm * heightm));
System.out.print("YOUR BMI IS " + bmi);
解决方案
如果您在没有 {} 的情况下编写它:
if (choices == ('e' || 'E'))
System.out.print("ENTER YOUR WEIGHT IN POUNDS(lb): "); // <-- if statement ends here
weighte = input.nextDouble(); // <-- runs unconditionally
//...
else if (choices == ('m' || 'M')); // <-- if ends with ;
所以,只需使用括号
if(condition){
// ...
} else if(condition) {
// ...
}
另请参阅Java 教程: if-else:
此外,如果“then”子句仅包含一个语句,则左大括号和右大括号是可选的:
(我强调)
这段代码还有更多问题,我认为部分原因是从更大的代码块中提取了一个片段。但我认为这是这里的“主要”问题。
编辑:最后一件事......
如果 "e" 和 "m" 是唯一可能的两个选择,那么只需踢出第二个 if 和条件。如果它不是“e”,那么它必须是“m”。照原样,理论上有可能它既不是“e”也不是“m”,它bmi
没有设置(或设置为默认值)。
推荐阅读
- mongodb - 使用 db.stats 但正确的 pymongo 的集合计数为零
- javascript - 如何使基于 Chromium 的浏览器上的 Element.scrollIntoView() 不依赖于平滑滚动标志?
- python - 将字符串列表中的项目与列表之外的字符串连接起来
- matlab - 如何在 mat lab GUI 的面板中获取按钮输出?
- javascript - 将 AJAX 数据发送到 Node.js
- ruby-on-rails - 如何在没有提交点击的情况下提交/更新表单?
- swift - 获取自定义类型的 Date()
- linkedin - LinkedIn API OAuth2.0 授权范围
- node.js - 如何使用猫鼬将记录从一个集合移动到另一个集合
- python - Pandas:在每组中创建偏离均值的列