Java: почему этот код не работает? Бесконечный цикл?

Как вы можете судить по моей попытке, яя пытаюсь понять, как ясоздайте программу, которая дает пользователю 5 секунд для ввода некоторых строк текста, затем сканер подсчитает, сколько строк было введено. Я'Вы только начали изучать Java как мой второй язык, поэтому, пожалуйста, постарайтесь объяснить все как можно проще:)

у нас есть две теории о том, почему этоне работает. Во-первых, nextLine () вернет всю строку независимо от того,s пусто или не имеет значения, а не равно NL "", это на самом деле будет равна всей строке (т.е. " "). И моя вторая теория заключается в том, что яя понятия не имею, что яЯ делаю и поток программ повсюду. Во всяком случае, здесьмой код:

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();
    }
}

О, я забыл упомянуть, что hasNext () был тем, что я изначально пробовал:

       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();
}
    }

Ответы на вопрос(2)

Ваш ответ на вопрос