JAVA如果Statement工作但不能同时工作

时间:2015-09-22 00:33:13

标签: java if-statement

问题是我的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.");
    }
}          

2 个答案:

答案 0 :(得分:1)

你的第二个if(以及它的其他分支)总是被执行,因为你的第一个if没有else分支。要解决这个问题,请在第一个if:

中添加一个else分支
if (...) {
   ...
} else if (...) {
   ...
} else {
   ...
}

答案 1 :(得分:0)

MRoffel ..如果在第二个if ..

,你应该使用else

每次输入M时,第一个如果实际工作,并根据需要更改文本。但是第二个if将永远失败并打印else块。