簡體   English   中英

在for循環中進行Do-while循環

[英]Do-while loop inside in for loop

我有一個無法使用Java循環進行類練習的問題。 我需要編寫一個程序,詢問10個隨機乘法表問題。 在這10個問題的末尾,它必須向我展示第一次的正確問題。 如果第一次遇到的問題不正確,則必須顯示失敗編號表,然后重新制定問題。

我的問題是,在10個問題中,對於正確的問題,我有一個if -else;對於其他問題,我有一個if-else,以重新制定問題。 問題是當我未能通過問題時,程序會按原樣重新安排它,但是如果我輸入正確的答案,則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中的類:

程序> https://pastebin.com/imAQBuRX

方法> https://pastebin.com/GJdyrnRv

看起來您在兩個循環中都使用了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++;){
       ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM