Java: por que esse código não está funcionando? Loop infinito?
Então, como você pode dizer a partir da minha tentativa, estou tentando descobrir como eu faria um programa que desse ao usuário 5 segundos para inserir algumas linhas de texto, então o Scanner contará quantas linhas foram inseridas. Eu acabei de começar a aprender Java como minha segunda língua, então por favor, tente explicar tudo da maneira mais simples possível :)
Eu tenho duas teorias sobre por que não está funcionando. A primeira é que nextLine () retornará toda a linha, independente de estar vazia ou não, ao invés de NL igual a "", ela será igual a linha inteira (isto é, ""). E minha segunda teoria é que eu não tenho ideia do que estou fazendo e o fluxo do programa está em todo lugar. Enfim, aqui está o meu 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();
}
}
Ah, esqueci de mencionar que hasNext () foi o que eu tentei 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();
}
}