嗨,我需要一些帮助来完成我被要求做的任务,我很确定我已经接近完成,但需要一些事情来清理。我的任务是获取一个学生的姓名,输入他们的 10 个答案并将它们与答案键的答案相匹配。但是有一个问题,作为答案输入的任何内容都必须是 A、B、C 或 D,如果是其他内容,我必须要求再次输入答案。因此,我将输入更改为 char 并创建了一个 while 语句,以查看输入的内容是否不等于 A、B、C 或 D 以提示输入 A、B、C 或 D 并再次提示输入答案。但是即使我输入 A、B、C 或 D,它也会一直要求我输入 A、B、C 或 D。请帮忙,谢谢
import javax.swing.JOptionPane;
public class assignment3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
String answer;
int grade = 0;
int correct =0;
int incorrect =0;
char input;
char inputarray[]=new char [10];
char[] answerkey =
{ 'B','D', 'C', 'D', 'C', 'A', 'C', 'B', 'B', 'D' };
String Name = JOptionPane.showInputDialog("Enter Name");
for (i = 0; i< answerkey.length; i++) {
answer = JOptionPane.showInputDialog("Enter answer for question " + (1+i));
input = answer.charAt(0);
while (input != 'A' || input != 'B' || input != 'C' || input != 'D') {
JOptionPane.showMessageDialog(null, "Please enter A,B,C, or D");
answer = JOptionPane.showInputDialog("Enter answer for question "(1+i));
input = answer.charAt(0);
}
inputarray[i] = input;
i++;
while (i < answerkey.length)
{
if (inputarray[i] == answerkey[i])
correct++;
else
incorrect++;
}
}
grade = ((correct++) / (answerkey.length)) * 100;
JOptionPane.showMessageDialog(null, "Name: " + Name + "Answers Correct: "+ correct + "Answers Incorrect: "+ incorrect + "Grade: " + grade+ "%");
}
}