问题是我的if声明。第二个如果按设计工作,它打印出我问的内容,但第一个不会以相同的方式格式化,并默认为else语句。我只是想知道我做错了什么。
第一个如果
if(systemChoice.equals("M")){
weight = height * height * 25;
outputLabel.setText(name + ", your ideal weight is " + weight + " kgs.");
第二个如果
if(systemChoice.equals("I")){
weight = height * height * 25 / 703;
outputLabel.setText(name + " , your ideal weight is " + weight + " lbs");
}
如果有必要,这里是整个程序
String name, systemChoice;
double height, weight;
name = nameInput.getText();
systemChoice = systemInput.getText();
height = Double.parseDouble(heightInput.getText());
/*Calculates your ideal weight
*based on a bmi formula in
*your preferred system of measurement
*Imperial or Metric
*/
if(systemChoice.equals("M")){
weight = height * height * 25;
outputLabel.setText(name + ", your ideal weight is " + weight + " kgs.");
}
if(systemChoice.equals("I")){
weight = height * height * 25 / 703;
outputLabel.setText(name + " , your ideal weight is " + weight + " lbs");
}
else{
outputLabel.setText("Error. Check your System input and try again.");
}
}
答案 0 :(得分:1)
你的第二个if(以及它的其他分支)总是被执行,因为你的第一个if没有else分支。要解决这个问题,请在第一个if:
中添加一个else分支if (...) {
...
} else if (...) {
...
} else {
...
}
答案 1 :(得分:0)
MRoffel ..如果在第二个if ..
,你应该使用else每次输入M时,第一个如果实际工作,并根据需要更改文本。但是第二个if将永远失败并打印else块。