2017-12-02 12 views
0

클래스 운동을위한 자바 루프로 해결할 수없는 문제가 있습니다. 무작위 곱셈 테이블에 대해 10 가지 질문을하는 프로그램을 만들어야합니다. 10 개의 질문이 끝나면 처음 질문을 나에게 보여줘야합니다. 질문이 처음에는 올바르지 않은 경우, 실패한 번호의 표를 보여 주어야하고 질문을 재 형식화해야합니다.Do-while 루프 내부 for 루프

내가 가진 문제는 10 가지 질문에 대해 적절한 질문에 대해서는 ifelse, 질문을 다시 정리할 때는 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

그것의 지금은 잘 작동합니다. 시간 내 주셔서 대단히 감사합니다. 문안 인사. – JoshHZR

+0

당신을 진심으로 환영합니다! 나는 그것이 작동하게되어 기쁘다. – Keara