• Как работает метод nextLine() в классе Scanner?

    @MiiNiPaa
    nextLine() читает до конца текущей строки (символа перевода строки или конца потока) и возвращает всё, что было в этой строке.

    nextDouble() читает double. Оно не читает и не пропускает ничего ПОСЛЕ double.

    Итак вы вводите что-то вроде "3.15\n", где \n — символ перевода строки.
    nextDouble() извлекает 3.14 и оставляет "\n" в буфере.
    nextLine() натыкается на \n и прекращает работу, прочитав 0 символов — пустую строку.

    Проверьте: введите в одной строке "1 2 Иванов", и оно заработает (Правда пробел перед Иванов прочтётся как часть фамилии)

    Модно вызвать nextLine(), чтобы поглотить этот перенос строки и ожидать новой строки.
    Ответ написан
    3 комментария