我正在开发一个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;。
我不能通过逐行阅读来说明错误。提前谢谢。
答案 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
}