文字配列が10個の質問の正解で埋め込まれたプログラムを作成することになりました。私はユーザーの答えでいっぱいだった配列を作って、テストの答えでユーザーの回答をチェックし、ユーザーの入力を受けて合格または不合格の出力を出すことになっていました。コードはコンパイルされ、10文字で入力することができますが、入力する文字にかかわらず、出力は常に10個の答えが10個で間違っていました。文字配列が正しく入力されていない
これを理解しようと数時間困惑していますここでいくつかの助けを望んでいた。ここで
は、コードスニペットです:
//Part 2
char[] correctAnswers = {'b', 'd', 'a', 'a', 'c', 'a', 'b', 'a', 'c', 'd'}; //Char arrays
char[] studentAnswers = new char[10];
System.out.println("What are the students 10 answers?"); //Getting student answers
for (int i = 0; i < correctAnswers.length; i++)
studentAnswers = scan.next().toCharArray();
int points = 0; //Used to calculate pass or fail
for (int i = 0; i < correctAnswers.length; i++);
int j = 0; //Used to identify each element in the array
if (correctAnswers[j] == studentAnswers[j]) //Checks each answer with the correct answers and adds 1 point if it is true
{
points++;
j++;
}
else {
j++;
}
if (points >= 8) {
System.out.println("Congratulations! \nYou have passed exam.");
System.out.println("Total number of correct answers: " + points); //print points
System.out.println("Total number of incorrect answers: " + (correctAnswers.length - points)); //10 - points would equal the remaining amount of points available which would be how many were missed.
} else {
System.out.println("Sorry, you have not passed the exam!");
System.out.println("Total number of correct answers: " + points);
System.out.println("Total number of incorrect answers: " + (correctAnswers.length - points));
}
これは意味がありますが、出力の範囲外の配列を取得しようとしています。 – Tyler
@Tylerあなたが10文字以下または10文字以上を入力した場合にのみ、私は推測します。 – maraca
配列のサイズである正確に10を入力し、そのエラーが発生します。私は非常に私はそれを遭遇したことがないこのエラーを修正するために混乱している。 – Tyler