このプログラムはほぼ完成しましたが、入力の検証に問題があります。A
ユーザーが答えとして, B
, C
,のみを使用していることを確認する必要がありますが、これを行うと、プログラムは最終結果を繰り返し、ウィンドウを表示D
するだけではありません。"Only A, B, C, and D are valid"
Exam クラスの 101 行目から 125 行目 (以下の最後のコード セクション) を修正するのに助けが必要です。
エラーはこの部分にあります
public void actionPerformed(ActionEvent e){
String actionCommand = e.getActionCommand();
if (actionCommand.equals("Exit")){
System.exit(0);
}
else if (actionCommand.equals("Grade")){
char[] input = new char[20];
for (int i= 0; i < input.length; i++){
input[i] = answerTextFields[i].getText().charAt(0);
input[i] = Character.toUpperCase(input[i]);
}
for (int i=0; i<=input.length; i++) {
if (input[i] < 'A'|| input[i] > 'D') {
JOptionPane.showMessageDialog(null, "Only A, B, C, and D are valid");
}
else {
driver.setName(nameTextField.getText());
driver.report(input);
}
}
}
}