2017-12-02 315 views
0

我有一個問題,我不能用java循環來解決類練習。我需要編寫一個程序,提出10個隨機乘法表的問題。在10道問題結束時,它必須向我展示第一次正確的問題。如果問題不是第一次,它必須顯示失敗號碼的表格,然後重新提出問題。Do-while循環裏面的for循環

我現在面臨的問題是,在10個問題的範圍內,我有一個如果 - 正確的問題和其他內部的問題 - 而重新提出問題。問題是,當我沒有問題時,程序重新編寫了它,但是如果我輸入正確的答案,那麼do-while循環會關閉並停止提問。

練習中禁止使用數組。

下面是代碼:

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()); 

這裏同時在引擎收錄類:

計劃>https://pastebin.com/imAQBuRX

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

回答

1

它看起來像你都使用我你的循環。當do-while循環執行時,它以i爲10結束,所以當for循環條件被選中時,i = 10並且for循環結束。嘗試使用另一個變量 - 在內部循環中使用j是傳統的 - 以避免這種情況。

例如,下面是一組嵌套的與正確的變量名的循環:

for(int i = 0; i < 10; i++){ 
    for(int j = 0; j < 10; j++;){ 
     ... 
    } 
} 
+0

它現在能正常工作。非常感謝您的時間。問候。 – JoshHZR

+0

不客氣!我很高興它的工作。 – Keara