Foros del Web » Programación para mayores de 30 ;) » Java »

duda con el while dentro de un metodo

Estas en el tema de duda con el while dentro de un metodo en el foro de Java en Foros del Web. Hola tengo un metodo en mi aplicacion el cual tiene que devolver un boolean, el problema que tengo es que tengo dentro del metodo un ...
  #1 (permalink)  
Antiguo 23/09/2011, 13:33
 
Fecha de Ingreso: marzo-2011
Mensajes: 97
Antigüedad: 13 años, 8 meses
Puntos: 0
duda con el while dentro de un metodo

Hola tengo un metodo en mi aplicacion el cual tiene que devolver un boolean, el problema que tengo es que tengo dentro del metodo un while el cual se repite x veces, dentro de estos compara unos datos y en cierto mmomento debe salirse del while y del metodo, lo hago en otros metodos con un return; pero aqui como le puedo hacer?
por que si le pongo solo return false, sigue haciendo el while hasta que acaba y yo quiero que si se topa con este return se salga del metodo y ya no siga con el while como le puedo hacer?
gracias!
Código:
metodo(){
................
     while(....){
        if(X>Y){
                    javax.swing.JOptionPane.showMessageDialog(null, "Es mayor! errorrr!","CANTIDAD ERRONEA",javax.swing.JOptionPane.ERROR_MESSAGE);
                     return false;//aqui es donde quiero que pare y no siga con el while 
        }
return false o true// segun sea el caso
      }
}
  #2 (permalink)  
Antiguo 23/09/2011, 13:42
Avatar de Physlet  
Fecha de Ingreso: octubre-2010
Ubicación: Panamá
Mensajes: 48
Antigüedad: 14 años
Puntos: 9
Respuesta: duda con el while dentro de un metodo

Para detener el while() puedes usar la sentencia break;
Pero quizás haya algo más optimo, ¿cuál es la condición para que el ciclo se siga ejecutando? Recuerda que el while() sigue corriendo mientras la condición sea TRUE.
  #3 (permalink)  
Antiguo 23/09/2011, 13:59
 
Fecha de Ingreso: marzo-2011
Mensajes: 97
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: duda con el while dentro de un metodo

Hola, gracias fijate que no me sirvió el while,
la sentencia del while es
ResultSet cdr=BaseDatos.traertodo();
while (cdr.next()){
tons aqui va un if(si numero>cdr.getInt("numero"){
javax.swing.JOptionPane.showMessageDialog(.....)//mensaje de error
//aqui es donde deberia de salirse! de este método
break;
}//fin del if
}fin del while
pero no, no se sale, y la ventana de error se repite las veces que el while lo diga.... que puedo hacer para que se salga del while y luego del metodo :D ??
gracias

})
}
  #4 (permalink)  
Antiguo 23/09/2011, 15:30
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: duda con el while dentro de un metodo

El while se repite siempre que lo que este entre los parentesis sea TRUE, asi que hay que pensarle que puedes hacer?

Como una solucion puedes usar el operador lógico &&

de este modo:
while (cdr.next() && variableboleana == true) {
if(si numero>cdr.getInt("numero"){
javax.swing.JOptionPane.showMessageDialog(.....)//mensaje de error
variableboleana = false;
return variableboleana;
}//fin del if
}//fin del while

En ese punto el while ya no se repite puesto que ahora variableboleana es false y en la condicion pide que sea true. Y si ya no hay más código automáticamente se sale del método y si si lo hay pues usas break: fuera del while o validar con otro if fuera del while:
  #5 (permalink)  
Antiguo 24/09/2011, 18:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 97
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: duda con el while dentro de un metodo

Hola, gracias por responder y pues voy a probar ese codigo && te cuento luego :d gracias :D
  #6 (permalink)  
Antiguo 24/09/2011, 18:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 97
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: duda con el while dentro de un metodo

Si, si me sirvió gracias!!!!!!!!!!!!!!!!!!!!!!

Etiquetas: metodo, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:49.