我遇到了一个问题,我无法使用java循环来解决课堂练习。我需要制作一个程序,询问随机乘法表的10个问题。在10个问题的最后,它必须向我展示第一次正确的问题。如果第一次问题不对,则必须显示失败号码的表格,然后重新制定问题。
我遇到的问题是,在10个问题的范围内,我对正确的问题有一个问题,而在其他问题内部则重新提出问题。问题是当我没有通过问题时,程序会按照它应该的方式重新制定它,但如果我输入了正确的答案,那么do-while循环会关闭for并停止提问。
练习中禁止使用数组。
以下是代码:
for (int i=1; i<=10; i++) {
Tablas operacion=new Tablas();
int pregunta = Integer.parseInt(JOptionPane.showInputDialog(null, operacion.getNumeroPregunta()+"\n"+operacion.multiplicacion()));
if (pregunta == operacion.resultado()) {
Tablas.comprobadorPreguntas(true);
}
else {
do {
String salida="";
for (i=1; i<=10; i++) {
salida+=operacion.getMultiplicando() + "x"+i+"=" + (operacion.getMultiplicando() * i) + "\n";
}
JOptionPane.showMessageDialog(null, salida);
pregunta = Integer.parseInt(JOptionPane.showInputDialog(null, operacion.getNumeroPregunta()+"\n"+operacion.multiplicacion()));
} while(pregunta != operacion.resultado());
Tablas.comprobadorPreguntas(false);
}
}
JOptionPane.showMessageDialog( null, "Preguntas acertadas a la primera: "+Tablas.getContador());
以下是pastebin中的类:
答案 0 :(得分:1)
看起来你在两个循环中都使用了i。当执行do-while循环时,它以i为10结束,因此当检查for循环条件时,i = 10并且for循环结束。尝试使用另一个变量 - 在内循环中使用j是传统的 - 以避免这种情况。
例如,这是一组嵌套的for循环,具有正确的变量名称:
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++;){
...
}
}