0

こんにちは、依頼された課題について助けが必要です。完了間近だと確信していますが、解決するためにいくつかのことが必要です。私は、生徒の名前を取得し、10 個の回答を入力して、回答キーの回答と一致させることを任されています。ただし、問題が 1 つあります。回答として入力するものは、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+ "%");
}
}
4

1 に答える 1