2017-12-02 36 views
0

私はクラスの演習のためのJavaループでは解決できないという問題があります。私はランダムな乗算表の10の質問をするプログラムを作る必要があります。 10の質問の終わりに、それは最初に正しい質問を私に見せなければなりません。最初に質問が正しくない場合は、失敗した番号の表を表示し、質問を再定式化する必要があります。forループ内のDo-whileループ

私が持っている問題は、10の質問のために、適切な質問のためのifelと質問を再定式化するdo-whileの間にあるということです。問題は、私が質問に失敗したときにプログラムがそれを再定式化するが、私が正しい答えを入力すると、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()); 

ここではまた、ペーストビンでのクラスです:

プログラム>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

そのは今、正常に動作します:

例えば、ここで適切な変数名を持つforループの入れ子になったセットです。あなたのお時間をありがとうございました。よろしく。 – JoshHZR

+0

よろしくお願いします!私はそれがうれしいです。 – Keara

関連する問題