メジャーに記載されていない文字を置くと無効なメジャーを得ることができましたが、t2を置くと無効なメジャーしか得られません(メジャーは無効です)。コードを検出してどこに間違っているか教えてもらえますか?文字列/事例のプログラミングエラー
// Enter two characters
System.out.print("Enter two characters: ");
String status = in.next();
char major = Character.toUpperCase(status.charAt(0));
char year = status.charAt(1);
String courseName = "";
String yearName = "";
// majors
if (major == 'B' || major == 'I' || major == 'C')
{
switch(major)
{
case 'B':
courseName = "Biology"; break;
case 'C':
courseName = "Computer Science"; break;
case 'I':
courseName = "Information Technology"; break;
default:System.out.println("Invaild major"); break;
}
// year
switch(year)
{
case '1':
yearName = "Freshman"; break;
case '2':
yearName = "Sophmore"; break;
case '3':
yearName = "Junior"; break;
case '4':
yearName = "Senior"; break;
default: System.out.println("Invalid year status"); break;
}
System.out.printf("%s %s%n", courseName, yearName);
}
else{
System.out.printf("Invalid input.%n");
}
}
}
ようこそスタックオーバーフロー!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、問題を示す[最小限の、完全で実証可能な例](http://stackoverflow.com/help/mcve)に戻ってください。 –
'(major == 'B' || major == 'I' || major == 'C')'を取り除くと、 'T1'を入力するときに決して' switch'ステートメントを実行しません。 –
私はB5を置くとき、私は無効な年と生物学を得ることができましたが、私がT1を置くときに得られるのは無効な入力です。助けて! – Mia