クラス宣言の身長と体重の比較
適切な範囲の身長(110cm 以上200cm 未満)と体重(0kg を越える)のデータからBMI 体格
指数を計算し、表示するプログラムを下記で作成したのですが、「入力エラー1:身長データ 205.600 cm と体重データ -85.900 kg 110cm 以上200cm 未満の身長で、0kg より重い体重でしか計算できません。」と表示されません。むしろ、「入力エラー3:身長データ 205.600 cm 110cm 以上200cm 未満の身長でしか計算できません」と表示されるのですが、これはどこが違っているのですか?違っていたら例としてどのように直したらいいのか教えてください。
class Student
{
private double height;
private double weight;
private double bmi;
public void calculate(double ht, double wt)
{
if(ht>=110 && ht<=200 && wt>=0){
height = ht;
weight = wt;
bmi = wt/((ht/100)*(ht/100));
System.out.println("下記の学生のBMI体格指数を計算します。");
System.out.println( ht+"cm, "+wt+"kgの学生");
System.out.println("計算結果:BMIの体格指数は"+bmi+"kg/m2です。");
}
else if(!(ht>=110 && ht<=200)){
System.out.println("入力エラー3:身長データ"+ht+"cm");
System.out.println("110以上200cm未満の身長でしか計算できませ ん。");
}
else if(!(wt>0)){
System.out.println("入力エラー2:体重データ"+wt+"kg");
System.out.println(" 0kgより重い体重でしか計算できません。");
}
else{
System.out.println("入力エラー1:身長データ"+ht+"cmと体重デー タ"+wt+"kg");
System.out.println("110以上200cm未満の身長で、 0kgより重い体重でし か計算できません。");
}
}
}
class KNO
{
public static void main(String args[])
{
Student student1 = new Student();
student1.calculate(170.5, 62.3);
student1.calculate(205.6, -85.9);
student1.calculate(200.8, 102.6);
student1.calculate(108.4, 20.9);
student1.calculate(165.5, -52.7);
}
}
お礼
丁寧な回答、ありがとうございました。