Java: ¿por qué este código no funciona? ¿Bucle infinito?
Entonces, como puede ver en mi intento, estoy tratando de averiguar cómo crearía un programa que le diera al usuario 5 segundos para ingresar algunas líneas de texto, luego el Escáner contará cuántas líneas ingresó. Acabo de empezar a aprender Java como mi segundo idioma, así que intenta explicarlo todo de la manera más sencilla posible :)
Tengo dos teorías sobre por qué no funciona. La primera es que nextLine () devolverá la línea completa, independientemente de si está vacía o no significa en lugar de que NL sea igual a "", en realidad será igual a toda la línea (es decir, ""). Y mi segunda teoría es que no tengo ni idea de lo que estoy haciendo y el flujo del programa está por todas partes. De todos modos, aquí está mi código:
class OrigClass{
public static void main(String args[]){
Scanner ScanObj = new Scanner(System.in);
int Count = 0;
String NL = ScanObj.nextLine();
try{
Thread.sleep(5000);}
catch (InterruptedException e){
e.printStackTrace();
}
while (!NL.equals("")){
Count++;
NL = ScanObj.nextLine();
}
System.out.print("You Entered " + Count + " Lines.");
ScanObj.close();
}
}
Oh, olvidé mencionar que hasNext () fue lo que intenté originalmente:
import java.util.Scanner;
class OrigClass{
public static void main(String args[]){
Scanner ScanObj = new Scanner(System.in);
int Count = 0;
try{
Thread.sleep(5000);}
catch (InterruptedException e){
e.printStackTrace();
}
while (ScanObj.hasNext() == true){
Count++;
ScanObj.nextLine();
}
System.out.print("You Entered " + Count + " Lines.");
ScanObj.close();
}
}