Autor Tema: ¿Cómo evito que se siga ejecutando el código de mi programa?  (Leído 14072 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gilanrodas

  • Trade Count: (0)
  • Sv Full Member
  • *
  • Thank You
  • -Given: 22
  • -Receive: 0
  • Mensajes: 527
  • What Would Jesus Do?
Por aquí vengo molestando otra vez...  :rofl:

Tengo el siguiente código:

Código: [Seleccionar]
    private void validarCampos(){
        String camposIncompletos = "";
        if (txtNombre.getText().trim().equals("")){
            camposIncompletos = camposIncompletos + "- Nombre\n";
        }
        if (txtApellido.getText().trim().equals("")){
            camposIncompletos = camposIncompletos + "- Apellido\n";
        }
        if (txtFecNac.getText().trim().equals("")){
            camposIncompletos = camposIncompletos + "- Fecha de nacimiento\n";
        }
        if (txtDireccion.getText().trim().equals("")){
            camposIncompletos = camposIncompletos + "- Dirección\n";
        }
        if (txtTel1.getText().trim().equals("-")){
            camposIncompletos = camposIncompletos + "- Teléfono 1\n";
        }
        if (txtCel1.getText().trim().equals("-")){
            camposIncompletos = camposIncompletos + "- Celular 1\n";
        }
        if (txtContactoEmergencia.getText().trim().equals("")){
            camposIncompletos = camposIncompletos + "- Contacto en caso de emergencia\n";
        }
        if (txtTelEmergencia.getText().trim().equals("")){
            camposIncompletos = camposIncompletos + "- Teléfono en caso de emergencia\n";
        }

        if (camposIncompletos!=""){
            JOptionPane.showMessageDialog(null, "Los siguientes campos son obligatorios:\n\n" + camposIncompletos);
            //Detener ejecución del código siguiente
        }

        if (chbxAgrupMusic.isSelected() && txtAgrupMusic.getText().trim().equals("")){
            JOptionPane.showMessageDialog(null, "Por favor especifique la agrupación musical de la cual forma parte o deseleccione la casilla 'Agrupación Musical'.");
            //Detener ejecución del código siguiente
        }
        if (chbxOtrosGrupMusic.isSelected() && txtOtrosGrupMusic.getText().trim().equals("")){
            JOptionPane.showMessageDialog(null, "Por favor especifique la entidad musical de la cual forma parte o deseleccione la casilla 'Otros'.");
            //Detener ejecución del código siguiente
        }
    }

En las partes que he colocado "//Detener ejecución del código siguiente" necesito poner algo así como un break, pero no funciona porque no estoy en un loop o switch. ¿Hay alguna forma de hacerlo? He estado buscando en internet pero no hayo. Necesito algo así como un "Exit" de Visual Fox si no recuerdo mal, y el System.exit() de Java me finaliza toda la clase.

¡Gracias!

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #1 : julio 22, 2011, 10:11:14 am »
Sería bueno tratar con return's o con if - else if - else.


Follow members gave a thank to your post:
« Última Modificación: julio 22, 2011, 10:13:17 am por ~ »
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado hkadejo

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 277
  • -Receive: 929
  • Mensajes: 3336
    • AndroidJutsu
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #2 : julio 22, 2011, 10:20:46 am »
Solo pone return donde queres que deje de ejecutarse.
Follow members gave a thank to your post:
Ayudo a no programadores y programadores novatos con tutoriales, código y consejos a convertirse en desarrolladores Android profesionales y crear apps geniales.

DESCARGA MI GUÍA -> https://androidjutsu.com/guia-crea-tu-primera-aplicacion-android/

Desconectado gilanrodas

  • Trade Count: (0)
  • Sv Full Member
  • *
  • Thank You
  • -Given: 22
  • -Receive: 0
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #3 : julio 22, 2011, 12:00:28 pm »
Solo pone return donde queres que deje de ejecutarse.

Sería bueno tratar con return's o con if - else if - else.

Me funcionó a la perfección. ¡Gracias!

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1543
  • -] java Adict [-
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #4 : septiembre 22, 2011, 11:33:19 am »
una observación o consulta si es que estoy equivocado.
con respecto al comparador
Código: [Seleccionar]
if(txtNombre.getText().trim().equals(""))so es mejor hacerlo de la siguiente forma:
Código: [Seleccionar]
txtNombre.getText().trim().empty()
espero los qu tengan mas experiencia nos saquen de la duda.

saludos.
VampireTeam

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #5 : septiembre 22, 2011, 11:43:34 am »
una observación o consulta si es que estoy equivocado.
con respecto al comparador
Código: [Seleccionar]
if(txtNombre.getText().trim().equals(""))so es mejor hacerlo de la siguiente forma:
Código: [Seleccionar]
txtNombre.getText().trim().empty()
espero los qu tengan mas experiencia nos saquen de la duda.

saludos.

Me parece que es equivalente. Internamente, empty() va a tener que verificar la longitud de la cadena o verificar una igualdad con una cadena vacía.

¿Por qué pensar que sería mejor, hay alguna razón concreta, alguna diferencia de tipos o algo por el estilo?
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado Jaru

  • Trade Count: (21)
  • The Communiter-
  • *
  • Thank You
  • -Given: 782
  • -Receive: 1555
  • Mensajes: 13250
  • some text
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #6 : septiembre 22, 2011, 11:54:50 am »
no podes usar lo else?
N/A

Desconectado Camus de Acuario

  • Trade Count: (10)
  • The Communiter-
  • *
  • Thank You
  • -Given: 360
  • -Receive: 1851
  • Mensajes: 8452
  • Ōrora Ekusukyūshon!
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #7 : septiembre 22, 2011, 12:31:51 pm »
no podes usar lo else?
En realidad seria mejor if else pero el return tambien sirve.

Desconectado hkadejo

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 277
  • -Receive: 929
  • Mensajes: 3336
    • AndroidJutsu
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #8 : septiembre 22, 2011, 12:37:21 pm »
En el trabajo para verificar si un Objeto es nullo o vacio (cuando son String) usamos el siguiente metodo:

Código: [Seleccionar]
public static boolean isNullOrEmpty(Object obj) {
if (obj == null || obj.toString().length() < 1 || obj.toString().equals(""))
return true;
return false;
}
Ayudo a no programadores y programadores novatos con tutoriales, código y consejos a convertirse en desarrolladores Android profesionales y crear apps geniales.

DESCARGA MI GUÍA -> https://androidjutsu.com/guia-crea-tu-primera-aplicacion-android/

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1543
  • -] java Adict [-
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #9 : septiembre 22, 2011, 07:36:12 pm »

¿Por qué pensar que sería mejor, hay alguna razón concreta, alguna diferencia de tipos o algo por el estilo?

porque me parece que netbeans te da unos consejos cuando comparas cadenas vacias de esa forma, o estoy alucinando, y no recuerdo si tuve unos problemas con ese método de comparación y por eso mi duda.

fue hace varios meses que tuve esos problemas o que me pareció ver el consejo de netbeans algo así no recuerdo bien, pero la cuestión es que desde ya varios meses vengo usando el empty() para ese tipo de comparaciones.

Pero si ustedes dicen que es igual entonces algo malo estaba haciendo cuando tuve los problemas (que no he mencionado porque no recuerdo bien cuales fueron, pero la idea es esa x_x )
VampireTeam

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #10 : septiembre 23, 2011, 11:36:46 am »
No encontré empty() en la referencia de la API, solo isEmpty().

La mejor comprobación ante falta de información en un programa para saber si daría problema usar una u otra opción aparentemente equivalentes, sería simplemente cambiar una por otra en el código y ver el efecto.

El problema probablemente viene por la forma en que ambas funciones verifican un puntero nulo a un String y cómo se maneja ese caso en el programa. En resumen como mencionaban anteriormente SIEMPRE (por lo menos siempre que estemos seguros que eso nos interesa) hay que verificar y/o evitar punteros nulos de cualquier forma posible, por ejemplo creando una función que verifique punteros nulos.

Citar
isEmpty

public boolean isEmpty()

    Devuelve true si y solo si length() es 0.

    Devuelve:
        true si length() es 0, de lo contrario false
    Desde:
        1.6



Citar
equals

public boolean equals(Object anObject)

    Compara esta cadena al objeto especificado. El resultado es true si y solo si el argumento no es null y es un objeto String que representa la misma secuencia de caracteres que este objeto.

    Sobrepasa a:
        equals en la clase Object

    Parámetros:
        unObjeto - el objeto con el que comparar la cadena.
    Devuelve:
        true si los String son iguales; de lo contrario false.

Todo depende exactamente de entender lo que uno quiere lograr y cuál sería el efecto total del programa que hemos hecho dada la especificación de las funciones de la API y objetos usados.
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1543
  • -] java Adict [-
Re: ¿Cómo evito que se siga ejecutando el código de mi programa?
« Respuesta #11 : septiembre 23, 2011, 12:32:41 pm »
tenes razón es isEmpty.
y enonces cuando se me presentó el problema que menciono seguramente no habia asignado valor a la cadena de texto que estaba queriendo comparar y por eso siempre me devolvia ERROR.
entonces es cuestión de validar primeramente las variales, en este caso que el usa textfield no creo que le de problemas.

Gracias a los que expusierón su punto de vista, hoy si tengo claro el concepto.

PD. Haber si me pueden ayudar con lo de los hilos en java y swin que me estoy dando por vencido =P
VampireTeam