Ниже приведена программа 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() здесь?
Возможный дубликат В чем разница между методами next() и nextLine() из класса Scanner?




next() помещает курсор в ту же строку после чтения ввода. nextLine() читает ввод, включая пробелы между словами
Я знаю это, но почему я не могу использовать здесь nextLine()?
@smaltamash Вы читали две ссылки в комментариях под своим вопросом?
Я только что прочитал их, они были очень полезны и прояснили мое замешательство, спасибо @Ivar
Возможный дубликат Сканер пропускает nextLine() после использования next() или nextFoo()?