userAnswer []包含用户键入的答案字符串,并将其与答案[]进行比较,以查看它们是否匹配,然后吐出正确或错误。 j等于问题编号。所以,如果j是问题6,答案[j]应该参考答案[6]对吗? 然后userAnswer [6]应该与答案[6]进行比较,如果正确则匹配。但它给了我错误的答案,并显示我输入正确的答案。
int abc, loopCount = 100;
int j = quesNum, overValue, forLoop = 100;
for (int loop = 1; loop < loopCount; loop++)
{
aa = r.nextInt(10+1);
abc = (int) aa;
String[] userAnswer = new String[x];
JOptionPane.showMessageDialog(null,abc);
if(abc < x)
{
userAnswer[j] = JOptionPane.showInputDialog(null,"Question "+quesNum+"\n"+questions[abc]+"\n\nA: "+a[abc]+"\nB: "+b[abc]+"\nC: "+c[abc]+"\nD: "+d[abc]);
if(userAnswer[j].equals(answers[j]))
{
JOptionPane.showMessageDialog(null,"Correct. \nThe Correct Answer is "+answers[abc]);
}
else
{
JOptionPane.showMessageDialog(null,"Wrong. \n The Correct Answer is "+answers[abc]);
}//else
}//if
}//for
答案 0 :(得分:4)
您的指数名称不佳,您自己将它们混合起来。您想针对answers[abc]
检查answers[j]
而不是userAnswer[j]
。
答案 1 :(得分:0)
对于问题6,你需要答案[5],因为数组从0开始索引.0将是问题1,1将是问题2,等等。
答案 2 :(得分:0)
你的userAnswer
数组的范围是for循环。如果您的意思是使用此循环之外的值,则需要将定义移到循环外部。否则,您现在可以只使用一个答案字符串,而不是第二次访问这些值。