【发布时间】:2011-07-03 04:30:41
【问题描述】:
现在我有一个编程任务来计算 bmi(体重指数)并将其分配给一个分类。根据 bmi,它按如下方式分配它。我在分类获取字符串时遇到问题。当我尝试将分类放在消息框中时,它告诉我我没有初始化它。
public static void main(String[] args) {
//Variables
double bmi; // Body Mass Index
String weight; // Weight in kilograms
String height; // height in meters
String classification;
weight = JOptionPane.showInputDialog("Welcome to the BMI and BSA Calculator to begin enter weight in kilograms.");
double weight2 = Double.parseDouble(weight);
height = JOptionPane.showInputDialog("Enter height in meters");
double height2 = Double.parseDouble(height);
bmi = weight2/(height2*height2);
JOptionPane.showMessageDialog(null, "Your BMI is: " + bmi);
if (bmi < 18.5)
{
classification = "Underweight";
}
else if (bmi < 25)
{
classification = "Normal";
}
else if (bmi < 30)
{
classification = "Overweight";
}
else
{
classification = "Obese";
}
JOptionPane.showInternalMessageDialog(null, "Your classification is: " + classification);
【问题讨论】:
-
您是否在某处定义了
classification?String classification; -
这应该可以工作,尽管字符串文字周围的括号是多余的。此外,您可能会发现 [24.9, 25) 范围内的 BMI 存在问题,因为它们不在您的范围内,并且默认为“肥胖”(例如,请注意如果 bmi = 24.95 会发生什么)。除此之外,@Felix 所说的。
-
您需要向我们展示您如何声明分类。也不需要围绕字符串文字的封闭 ()。对话消息中还有拼写错误。
-
是的,我有分类;在我的循环上方和我的其他变量我也修复了范围问题(老师的讲义不是我):)
-
@Brad:我将在下面重复我的评论:什么循环?你没有在你的代码中显示一个。请编辑您的代码以向我们展示全部。
标签: java string conditional