ユーザーに生年月日と生年月日を入力するように求めるこのコードを作成しました。いくつかのエラー チェックがあります。月は整数で、1 ~ 12 の範囲でなければなりません。年も同じ。現状では、while ループが 2 つあり、それらを組み合わせて何か問題が発生したときにエラー メッセージを表示する方法が思い浮かびません。「入力が間違っています: 再入力してください」というだけの場合は考えられますが、入力の何が問題なのかを示す必要があります。それは月で始まり、年を尋ねる前にその月が適切でなければなりません。年が間違っている場合は、年を再入力するように求められます。月まで戻るのではありません。
誰かに何かアイデアがあれば、私はそれを感謝します。それが整数かどうかをチェックするために使用されるクラスは、私が使用する必要があるクラスです。
while(!monthDone) {
System.out.print("Enter Month of Birth: ");
monthInput=scan.next();
if(!(Type.isInteger(monthInput))) {
System.out.println("You need to enter an integer for month");
monthDone=false;
} else {
MOB = Integer.valueOf(monthInput);
if (MOB<1 || MOB>12) {
System.out.println("Your month is out of range");
monthDone=false;
} else {
monthDone=true;
}
while(!yearDone) {
System.out.print("Enter Year of Birth: ");
yearInput=scan.next();
if(!(Type.isInteger(yearInput))) {
System.out.println("You need to enter an integer for year");
}
else {
YOB = Integer.valueOf(yearInput);
if (YOB<1912 || YOB>2012) {
System.out.println("Your year is out of range");
yearDone=false;
}
else
yearDone=true;
}
}
}
}
} // else closed
} // Outer while close
whileループを投稿しているだけです。両方の場合monthDone && yearDone == true
、次にそれらの年齢などを出力します。