while循环内for循环是否感到困惑?

对编程来说是完全陌生的,我当时正在做一个项目,但我对如何使其工作感到困惑。请帮助我

        boolean answer1 = true; 
        for (int i=0;i<q.questionbank.length;++i)
       {   q.Question = input(q.questionbank[i]);

        while(answer1 == true)
       {

        if (q.Question.equals(a.correctans) || (q.Question.equals(a.impossibleans) || (q.Question.equals(a.wrongans))))
        {
            score = printquiz(answer,score,q.Question);
            answer1 = false;
        }
        else
        {
            print("Not a Valid Answer,please try again\n");
        }
    }
    }
    return score;

在这里,我有一个名为问题库和测验的类。 Correctans / impossibleans / wrongans是测验数据类型的一部分。而q.question是问题库的一部分。我对问题库数据类型的数组有疑问。我想使用for循环遍历问题,如果用户输入正确的答案,那么得分会上升。它适用于第一个问题,但不适用于第二个问题。通常,当他们回答正确时,我可以使用另一种方法printquiz,该方法具有决策语句以告知用户他们的答案是正确还是错误,并为其分配分数。但是在循环的第一次迭代之后,它甚至都没有使用该方法。我对正在发生的事情感到困惑。请帮助我

loveldj13ldj 回答:while循环内for循环是否感到困惑?

这就是我要设置的方式。假设答案是错误的,直到得到答案为止。然后将其设置为true以退出循环。

    for (int i = 0; i < q.questionbank.length; ++i) {
        q.Question = input(q.questionbank[i]);

        answer1 = false;
        while (!answer1) {

            if (q.Question.equals(a.correctans) || (q.Question.equals(a.impossibleans) || (q.Question.equals(a.wrongans)))) {
                score = printquiz(answer,score,q.Question);
                answer1 = true;
            } else {
                print("Not a Valid Answer,please try again\n");
            }
        }
    }
,

第二次无效,因为您将answer1设置为false,而再也没有将其设置回true了。因此,在第一次到达if语句中的while行代码之后,就不再进入answer1 = false循环(=不再求真)。

要解决此问题,请尝试将answer1 = true放在for循环中,而while循环之前。

本文链接:https://www.f2er.com/3121544.html

大家都在问