for循环中的do-while循环

时间:2017-12-02 19:09:00

标签: java loops for-loop if-statement do-while

我遇到了一个问题,我无法使用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中的类:

计划&gt; https://pastebin.com/imAQBuRX

方法&gt; https://pastebin.com/GJdyrnRv

1 个答案:

答案 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++;){
       ...
    }
}