Ayuda con mi codigo

Necesito ayuda con mi codigo lo que pasa es lo siguente
Lo que debe hacer el programa:
1.El estudiante debe poder tener como máximo 3 intentos para dar la respuesta al
problema, si no lo logra a los tres intentos, se debe desplegar la respuesta
correcta y debajo de ella toda la tabla de multiplicar.

//En el momento donde ingresa su respuesta el try lo analiza y si ingresa un caracter invalido no lo deja avanzar

//cuando ingreso un valor valido incorrecto a la respuesta no me vuelve a preguntar otra vez simplemente me manda el mensaje respuesta equivocada 3 veces y se sale
import javax.swing.*;

class Tablas {
    private int num1;
    private int num2;
   
    public void asignar(int n1,int n2){
    num1=n1;
    num2=n2;
    }

    public int multiplicar(){
        int multi=0;
        multi=num1*num2;
        return multi;
    }}
public class Main1 {public static void main(String[] args) {
int c=0,c1=0;
int multi=0;
int resp=0;
String tabla="";
String respu="";
String input="";
boolean r=false;
Tablas obj=new Tablas();
Icon bienve=new ImageIcon("bienvenidos.jpg");
Icon mala=new ImageIcon("mala.jpg");
Icon buena=new ImageIcon("Buena.jpg");
int num1 = (int)(Math.random()*9+1);
int num2 = (int)(Math.random()*9+1);
obj.asignar (num1,num2);
multi=obj.multiplicar ();
JOptionPane.showMessageDialog(null,"Cuanto es:\n"+num1+"*"+num2+"?","Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE,bienve);
respu=JOptionPane.showInputDialog (null,"\nQuieres dar tu respuesta?\nsi/no");
  switch (respu){
        case "si":{
                                while(c<3)
                                {
                                while(r==false)
                                {              
                                try{
                                input=JOptionPane.showInputDialog (null,num1+"*"+num2+"?"+"\nMI RESPUESTA ES:");       
                                resp=Integer.parseInt (input);
                                if (resp<0||resp>=0)
                                        r=true;
                                }
                                catch(NumberFormatException e){
                                        JOptionPane.showMessageDialog(null,"ERROR DECONVERSION","Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE,null);
                                }
                                }      
                                if (resp!=multi)
                                {JOptionPane.showMessageDialog (null,"RESPUESTA EQUIVOCADA","Bienvenido al mundo de las matematicas",JOptionPane.WARNING_MESSAGE,null);
                                        c=c+1;}
                                else
                                {JOptionPane.showMessageDialog (null,"Mi respuesta A:\n"+num1+"*"+num2+"?\n"+"ES:\t"+resp+"\n******EXCELENTE*****","Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE,buena);
                                        c=22;}
                                }
                         break;}
       
        case "no":{
        c=12;
        break;}
        }
       
        if (c>=3){
        for ( c1=1; c1<=9; c1++)
        {
        tabla=tabla+(num1+" x "+c1+" = "+(num1*c1))+"\n";
        }      
        JOptionPane.showMessageDialog (null,"Mi respuesta A:\n"+num1+"*"+num2+"?\n"+"ES:\t"+resp+"\n******sorry*****\n"+"La respuesta correcta era:"+multi+"\n\n"+tabla,"Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE,mala);
        }}
               
}

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

=D

Ya esta Amigo solo le agrege un do while y le puse que imprima la tabla si se pasa de 3 intentos

import javax.swing.*;

class Tablas {
    private int num1;
    private int num2;
   
    public void asignar(int n1,int n2){
    num1=n1;
    num2=n2;
    }
    public int multiplicar(){
        int multi=0;
        multi=num1*num2;
        return multi;
    }}

public class Main1 {
   
    public static void main(String[] args) {
int c=0,c1=0;
int multi=0;
int resp=0;
String tabla="";
String respu="";
String input="";
boolean r=false;
Tablas obj=new Tablas();
Icon bienve=new ImageIcon("bienvenidos.jpg");
Icon mala=new ImageIcon("mala.jpg");
Icon buena=new ImageIcon("Buena.jpg");
int num1 = (int)(Math.random()*9+1);
int num2 = (int)(Math.random()*9+1);
obj.asignar (num1,num2);
multi=obj.multiplicar ();
JOptionPane.showMessageDialog(null,"Cuanto es:\n"+num1+"*"+num2+"?","Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE,bienve);
respu=JOptionPane.showInputDialog (null,"\nQuieres dar tu respuesta?\nsi/no");
  switch (respu){
        case "si":{
                                do{
                                try{
                                input=JOptionPane.showInputDialog (null,num1+"*"+num2+"?"+"\nMI RESPUESTA ES:");        
                                resp=Integer.parseInt (input);
                                if (resp<0||resp>=0)
                                        r=true;
                                }
                                catch(NumberFormatException e){
                                        JOptionPane.showMessageDialog(null,"ERROR DECONVERSION","Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE,null);
                               
                                }      
                             
                                if (resp!=multi){
                                JOptionPane.showMessageDialog (null,"RESPUESTA EQUIVOCADA","Bienvenido al mundo de las matematicas",JOptionPane.WARNING_MESSAGE,null);
                                        c++;
                                }else{
                                      c=100;
                                }
                                }while(c<3 && c!=100);
                               
        if (c==3){
        for ( c1=1; c1<=9; c1++){
       
        tabla=tabla+(num1+" x "+c1+" = "+(num1*c1))+"\n";
        }      
        JOptionPane.showMessageDialog (null,"Mi respuesta A:\n"+num1+"*"+num2+"?\n"+"ES:\t"+resp+"\n******sorry*****\n"+"La respuesta correcta era:"+multi+"\n\n"+tabla,"Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE);
        }else{
               JOptionPane.showMessageDialog (null,"Mi respuesta A:\n"+num1+"*"+num2+"?\n"+"ES:\t"+resp+"\n******EXCELENTE*****","Bienvenido al mundo de las matematicas",JOptionPane.INFORMATION_MESSAGE);

        }
                         break;
        }
        case "no":{
        c=12;
        break;
        }
      }
       
               
 }
}