GUI中的Java循环重复而不是计算迭代

时间:2018-01-05 20:32:05

标签: java swing

我正在开发一个Java测验,它解释用户输入的关于数组的一个维度(问题)的数据,并根据第二维度(正确的答案)验证它们。在CLI中创建它之后,我添加了jFrame功能,并将其保留为通过IDE控制台输出(System.out.println)检查其工作方式并稍后添加jFrame输出。但是,为答案检查而设计的循环无法正常运行。

description

进入" A"反对" A?"输出:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    Console input = System.console();
    Random r = new Random();
    int randq = r.nextInt(4);
    String answer;
    String[][] Qs = new String[4][2];

    Qs[0][0] = "A?";
    Qs[0][1] = "A";
    Qs[1][0] = "B?";
    Qs[1][1] = "B";
    Qs[2][0] = "C?";
    Qs[2][1] = "C";
    Qs[3][0] = "D?";
    Qs[3][1] = "D";

    for (int counter = 0; counter < 4;) {
        randq = r.nextInt(4);
        jLabel1.setText(Qs[randq][0]);
        add(jTextField1);
        answer = jTextField1.getText();
            if (answer.equals(Qs[randq][1])) {
                System.out.println("Correct!");
                jTextField1.setText("");
            }
            else {
                System.out.println("Incorrect, the answer was " + Qs[randq][1]);
                jTextField1.setText("");
            }
            counter = counter + 1;
    }
}  

目标是让程序重复一定数量的问题,而是重复自己每次问题的次数。此外,由于某种原因,它没有解释第一个之后的任何答案,正如你可以看到&#34;不正确,答案是A&#34;。

我不能通过逐行阅读来说明错误。提前谢谢。

1 个答案:

答案 0 :(得分:0)

一旦找到正确答案,您需要break离开循环。

if (answer.equals(Qs[randq][1])) {
    System.out.println("Correct!");
    jTextField1.setText("");
    break;
}

这条线也很奇怪

counter = counter + 1;

在该循环结束时。

不确定你是否写过这个,但你可以通过按如下方式删除该行

for(int counter = 0; counter < 4; counter++) {
    // Do work
}