循环跳到最后一个迭代

时间:2018-07-04 16:01:37

标签: java android loops

我正在为数学测验应用编写代码,该应用应该使用随机数提出加法问题。这部分有效,问题是当我使用循环时。循环跳到最后,当我使用调试器时,我看到onclick方法直到最后一次迭代才运行,因为从不显示第一个问题,也没有输入任何内容。我尝试将循环放在不同的位置并使用不同的循环。有趣的是,我什至使用了do循环,该循环应该先询问第一个问题,然后再循环,但这始终是最后一个显示的问题。

这是主要代码

public void generateAdditionQuiz() {
    setContentView(R.layout.quiz);
    TextView text_view_question = (TextView) findViewById(R.id.text_view_question);
    TextView text_view_feedback = (TextView) findViewById(R.id.score);
    do{
        final String question = addition();
        text_view_question.setText(""+question);
        text_view_feedback.setText("score " + questionsAnswdCrrct + "question # " + questionsMAX);
        Log.i("My Acy", "questions " + questionsMAX);
        Button buttonSend = (Button) findViewById(R.id.button_send);
        buttonSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText answerInput = (EditText) findViewById(R.id.answer_field);
                // parse input string to int
                int answer = Integer.parseInt(answerInput.getText().toString());
                String[] arrayQuestion = question.split("\\+");
                // parse string array to int array
                int[] parsedQuestion = new int[arrayQuestion.length];
                int questionSum = 0;
                for (int i = 0; i < arrayQuestion.length; i++) {
                    parsedQuestion[i] = Integer.parseInt(arrayQuestion[i]);
                    questionSum += parsedQuestion[i];
                }
                if (answer == questionSum) {
                    questionsAnswdCrrct++;
                } else {
                    //text_view_feedback.setText("Incorrect");
                }
            }
        });questionsMAX++;
    }while(questionsMAX<=2);
}

0 个答案:

没有答案