es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo detener el bucle for o utilizar los datos originales?

Disculpa por mi inglés, pero ¿cómo se supone que debo ejecutar el MENSAJE DE ERROR sin repetirlo 3 veces?

Este es el original, si ejecuto el ERROR JOptionPane se repetirá 3 veces:

String name = JOptionPane.showInputDialog(null, "Ingrese el nombre del estudiante a buscar:", "Entrada", JOptionPane.QUESTION_MESSAGE);
String data = ("¡No se puede encontrar al estudiante \"" + name + "\"!!");
for (int i = 0; i < student.length; i++){
    if(name.equals(student[i].getName())){
        data = ("\n Curso \t Admin# \t Nombre \n" + student[i].getName() + student[i].getAdminNum() + student[i].getCourse() + student[i].getGpa() + student[i].getNewModule() + "\n");
        JOptionPane.showMessageDialog(null, data, "Mensaje", JOptionPane.INFORMATION_MESSAGE);
    }
    else{
        JOptionPane.showMessageDialog(null, data, "Mensaje", JOptionPane.ERROR_MESSAGE);
    }
}

Y este es el actual, donde la declaración if else está incorrecta ya que no pude leer los datos originales:
“`java
String name = JOptionPane.showInputDialog(null, “Ingrese el nombre del estudiante a buscar:”, “Entrada”, JOptionPane.QUESTION_MESSAGE);
String data = (“¡No se puede encontrar al estudiante \”” + name + “\”!!”);
for (int i = 0; i < student.length; i++){
if(name.equals(student[i].getName())){
data = (“\n Curso \t Admin# \t Nombre \n” + student[i].getName() + student[i].getAdminNum() + student[i].getCourse() + student[i].getGpa() + student[i].getNewModule() + “\n”);
}
}
if(data != data){
JOptionPane.showMessageDialog(null, data, “Mensaje”, JOptionPane.INFORMATION_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, data, “Mensaje”, JOptionPane.ERROR_MESSAGE);
}
Disculpa si hay alguna confusión debido a mi limitado inglés.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar el MENSAJE DE ERROR sin repetirlo 3 veces, puedes modificar la declaración if-else verificando si la cadena de datos contiene el mensaje de error antes de mostrar el cuadro de diálogo del mensaje. De esta manera, el mensaje de error solo se mostrará una vez si no se puede encontrar el nombre del estudiante. Aquí tienes el fragmento de código actualizado:

    String name = JOptionPane.showInputDialog(null, "Ingrese el nombre del estudiante a buscar:", "Entrada", JOptionPane.QUESTION_MESSAGE);
    String data = "¡No se puede encontrar al estudiante \"" + name + "\"!!";
    for (int i = 0; i < student.length; i++){    
        if(name.equals(student[i].getName())){
            data = "\n Curso \t Número de administración \t Nombre \n" + student[i].getName() + student[i].getAdminNum() + student[i].getCourse() + student[i].getGpa() + student[i].getNewModule() + "\n";
        }
    }
    if(data.contains("No se puede encontrar al estudiante")){
        JOptionPane.showMessageDialog(null, data, "Mensaje", JOptionPane.ERROR_MESSAGE);
    } else {
        JOptionPane.showMessageDialog(null, data, "Mensaje", JOptionPane.INFORMATION_MESSAGE);
    }
    

    ¡Espero que esto te ayude!

Comments are closed.