Java(Switch case + scanner输入问题)

时间:2015-04-15 05:39:23

标签: java

我练习开关盒&扫描仪输入我的期末考试。但是,我不知道为什么跳过案例2中的第一个扫描仪输入。这是我的代码:

Scanner scanner = new Scanner(System.in);
String list=" 1- A \n 2- B \n 3- quit \n Enter your choice";
System.out.println(list);
int choice= scanner.nextInt();

while (choice!=3){
   switch(choice){

   case 1:
    System.out.println(" Option A ");
    System.out.println(list);
    choice = scanner.nextInt();
   break;

   case 2:
   System.out.print (" Enter your name ");
   String name=scanner.nextLine();
   System.out.println(name);
   System.out.println(list);
   choice = scanner.nextInt();
   break;

   default:
   System.out.println(" Invalid choice" );
   System.out.println(list);
   choice = scanner.nextInt();
   break;
}
}

输入" 2"时的输出:

1- A

2- B

3-退出

输入您的选择

2

输入您的姓名

1- A

2- B

3-退出

输入您的选择

1 个答案:

答案 0 :(得分:1)

nextInt()不会占用整行,因此您必须跳过该行。因此,int choice= scanner.nextInt();之后只需添加scanner.nextLine();即可。