Почему я не могу использовать nextLine() вместо next()?

Ниже приведена программа Java: -

import java.util.Scanner;
public class Program{
public static void main(String args[]){
    Scanner sc=new Scanner(System.in);
    boolean state=true;
    while(state){
        System.out.println("Welcome");
        System.out.println("Press 1 to enter your name ");
        System.out.println("Press 2 to exit");
        int input =sc.nextInt();
        switch(input){
            case 1:{
                System.out.print("Enter your name : ");
                String name=sc.nextLine();
                //String name=sc.next();
                System.out.println("Your name is\""+name+"\" and it is a beautiful name.");
            }
            break;
            case 2:{
                System.out.println("Goodbye");
                state=false;
            }
            break;
            default:{
                System.out.println("Wrong input");
            }
        }
    }
    sc.close();
}

}

Я запустил эту программу, и когда я ввел 1 в качестве входных данных, я не смог ввести значение переменной имени, и она распечаталась сама по себе, а затем продолжила выполнение, но когда я использовал next() вместо nextLine(), программа работала правильно. Почему я не могу использовать nextLine() здесь?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
94
1

Ответы 1

next() помещает курсор в ту же строку после чтения ввода. nextLine() читает ввод, включая пробелы между словами

Я знаю это, но почему я не могу использовать здесь nextLine()?

smaltamash 14.03.2019 11:02

@smaltamash Вы читали две ссылки в комментариях под своим вопросом?

Ivar 14.03.2019 11:06

Я только что прочитал их, они были очень полезны и прояснили мое замешательство, спасибо @Ivar

smaltamash 14.03.2019 11:10

Другие вопросы по теме