为什么我不能使用nextLine()代替next()?

时间:2019-03-14 09:52:50

标签: java java.util.scanner

下面是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()?

1 个答案:

答案 0 :(得分:0)

next()在读取输入后将光标置于同一行。 nextLine()读取包含单词之间空格的输入