Pdrian decirme el error de este programa

try {
            String mate = Emate.getText().toString();
            int grado = Integer.parseInt(Egrado.getText());
            int semana = Integer.parseInt(Esema.getText());
            int bloque = Integer.parseInt(Ebloque.getText());
            String x;
            int y;
           
           

            if (mate.equals("") || grado == 0 || semana == 0 || bloque == 0){
                javax.swing.JOptionPane.showMessageDialog(null, "Hay espacios en blanco.");
       

            }
            else{

             bd.conectarp();
            bd.orden = (Statement) bd.conexion.createStatement();
                bd.respuesta = bd.orden.executeQuery("SELECT materia,grado FROM materias ");
                   while ( bd.respuesta.next()){
                       for (int i=0; i<1; i++){
                               
                         x = bd.respuesta.getObject("materia").toString();
                         y = Integer.parseInt(bd.respuesta.getObject("grado").toString());
                         if(x.equals(mate) && y == grado){
                            javax.swing.JOptionPane.showMessageDialog(null, "Ya existe este registro.");
                           
                                }
                        i++;
                        bd.desconectar();                        }
                                                }
              bd.desconectar();
                try {
                    bd.conectarp();
                    bd.orden = (Statement) bd.conexion.createStatement();
                    bd.orden.executeUpdate("INSERT INTO materias (materia,grado,semanas,Bloques) VALUES ('" + mate + "','" + grado + "','" + semana + "','" + bloque + "')");
                    lista ();
                }
                catch (SQLException ex) {
                    Logger.getLogger(EditarPrograma.class.getName()).log(Level.SEVERE, null, ex);
                    javax.swing.JOptionPane.showMessageDialog(null, "Error al conectarse con la base de datos.");
                }
                bd.desconectar();
            }
            Emate.setText(null);
            Egrado.setText("0");
            Esema.setText("0");
            Ebloque.setText("0");
        } catch (SQLException ex) {
            Logger.getLogger(EditarPrograma.class.getName()).log(Level.SEVERE, null, ex);
        }

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.

el problema

es que no puedo hacer que se detenga el programa cuando ya esta registrado el registro,manda el mensaje de que ya existe pero igual agrega el registro y recuerdo el breack de el switch pero no se si puedo usarlo en un if dentro dele un for dentro de un while que pueden ayudar soy estudiante bueno el chiste es como puedo detener el proceso y evitar que continué

Error en tu logica

Existe algo similar al goto en java usando break

afuera: {

    ...
    break afuera;

}

con eso sales del bloque, ademas pienso que deberias mejor definir un metodo para el insert que no haga todo el proceso en un solo metodo pues.

ok

ok tiene razón en lo del método pero yo no conosco la redacción del breack que mencionas

Ademas se me ocurrio en se mismo problema

al momento del if que da el mensaje de que ya existe el registro poner todos los textbox en blanco como tengo el otro if de espacio en blanco y reactualizar las variables y funciono si en l break de todos modos seguiré tu recomendación y agradezco tu tiempo de ayudarme

  try {
            String mate = Emate.getText().toString();
            int grado = Integer.parseInt(Egrado.getText());
            int semana = Integer.parseInt(Esema.getText());
            int bloque = Integer.parseInt(Ebloque.getText());
            String x;
            int y;
           bd.conectarp();
            bd.orden = (Statement) bd.conexion.createStatement();
                bd.respuesta = bd.orden.executeQuery("SELECT materia,grado FROM materias ");
                   while ( bd.respuesta.next()){
                       for (int i=0; i<1; i++){
                               
                         x = bd.respuesta.getObject("materia").toString();
                         y = Integer.parseInt(bd.respuesta.getObject("grado").toString());
                         if(x.equals(mate) && y == grado){
                            javax.swing.JOptionPane.showMessageDialog(null, "Ya existe este registro.");
                             Emate.setText(null);
                             Egrado.setText("0");
                             Esema.setText("0");
                             Ebloque.setText("0");
           
                                }
                        i++;
                                             }
                          }
           
              bd.desconectar();
         mate = Emate.getText().toString();
         grado = Integer.parseInt(Egrado.getText());
         semana = Integer.parseInt(Esema.getText());
         bloque = Integer.parseInt(Ebloque.getText());

            if (mate.equals("") || grado == 0 || semana == 0 || bloque == 0){
                javax.swing.JOptionPane.showMessageDialog(null, "Hay espacios en blanco.");
       

            }
            else{

             
                try {
                    bd.conectarp();
                    bd.orden = (Statement) bd.conexion.createStatement();
                    bd.orden.executeUpdate("INSERT INTO materias (materia,grado,semanas,Bloques) VALUES ('" + mate + "','" + grado + "','" + semana + "','" + bloque + "')");
                    lista ();
                }
                catch (SQLException ex) {
                    Logger.getLogger(EditarPrograma.class.getName()).log(Level.SEVERE, null, ex);
                    javax.swing.JOptionPane.showMessageDialog(null, "Error al conectarse con la base de datos.");
                }
                bd.desconectar();
            }
            Emate.setText(null);
            Egrado.setText("0");
            Esema.setText("0");
            Ebloque.setText("0");
        } catch (SQLException ex) {
            Logger.getLogger(EditarPrograma.class.getName()).log(Level.SEVERE, null, ex);
        }