Saltar al contenido

¿Cómo salir del ciclo while en Java con el método Scanner “hasNext” como condición?

Te recomendamos que pruebes esta resolución en un ambiente controlado antes de pasarlo a producción, saludos.

Solución:

Sigues recibiendo nuevos y nuevos string y continuar el bucle si no está vacío. Simplemente inserte un control en el ciclo para una salida string.

while(!s1.equals("exit") && sc.hasNext()) 
    // operate

Si desea declarar el string dentro del bucle y no hacer las operaciones en el cuerpo del bucle si el string es “salir”:

while(sc.hasNext()) 
    String s1 = sc.next();
    if(s1.equals("exit")) 
        break;
    
    //operate

los Scanner continuará leyendo hasta que encuentre una condición de “fin de archivo”.

Mientras lees de stdineso será cuando envíe un carácter EOF (generalmente ^d en Unix), o al final del archivo si usa < redirección de estilo.

Cuando usa el escáner, como lo menciona Alnitak, solo obtiene 'false' para hasNext() cuando tiene un carácter EOF, básicamente... No puede enviar fácilmente un carácter EOF usando el teclado, por lo tanto, en situaciones como esta, es común tener un carácter o palabra especial que puede enviar para detener la ejecución, por ejemplo:

String s1 = sc.next();
if (s1.equals("exit")) 
    break;

Break te sacará del bucle.

Agradecemos que desees añadir valor a nuestra información aportando tu experiencia en las aclaraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *