数组不正确匹配

时间:2010-06-03 13:33:17

标签: java arrays

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

3 个答案:

答案 0 :(得分:4)

您的指数名称不佳,您自己将它们混合起来。您想针对answers[abc]检查answers[j]而不是userAnswer[j]

答案 1 :(得分:0)

对于问题6,你需要答案[5],因为数组从0开始索引.0将是问题1,1将是问题2,等等。

答案 2 :(得分:0)

你的userAnswer数组的范围是for循环。如果您的意思是使用此循环之外的值,则需要将定义移到循环外部。否则,您现在可以只使用一个答案字符串,而不是第二次访问这些值。