Почему не работает консольный ввод в switch (JAVA)
Не работает данная строка кода с вводом string и последующий записью этого значения в arraylist. Сама программ выводит
Выберите действие:
1-добавить студента
2- удалить студента
3-заменить студента
4-найти номер студента из списка
1
Добавьте студента
[]
----
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
ArrayList<String> student_list = new ArrayList<String>();
System.out.println("Выберите действие:");
System.out.println(" 1-добавить студента\n 2- удалить студента\n 3-заменить студента\n 4-найти номер студента из списка ");
int tag_name = in.nextInt();
switch (tag_name){
case 1:
System.out.println("Добавьте студента");
student_list.add(in.nextLine());
break;
}
System.out.println(student_list);
}
Ответы (1 шт):
Автор решения: Dareten
→ Ссылка
Сама проблема заключается в том, что scan.nextInt() считывает не всю строку, а лишь число, оставляя в буфере \n, который и принимает следующий scan.nextLine(). Чтобы решить эту проблему, можно, например вызвать холостой scan.nextLine() перед основным рабочим телом Вашей программы. Это уберет из буфера перенос строки и далее все заработает так, как того бы хотелось.