Пропускает ввод строки в Java
import java.util.Scanner;
public class Program {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int c = 0;
System.out.print("Input number 1: ");
int a = in.nextInt();
System.out.print("Input Name: ");
String name = in.nextLine();
System.out.print("Input number 2: ");
int b = in.nextInt();
}
}
Код запускается но после ввода номера 1, он пропускает имя и сразу просит ввести номер 2. Вот это вводит:
Input number 1: 5
Input Name: Input number 2:
Как это можно решить?
Ответы (1 шт):
Автор решения: had0uken
→ Ссылка
Исправленный вариант:
Scanner in = new Scanner(System.in);
int c = 0;
System.out.print("Input number 1: ");
int a = in.nextInt();
in.nextLine();
System.out.print("Input Name: ");
String name = in.nextLine();
System.out.print("Input number 2: ");
int b = in.nextInt();
У вас при считывании переменной а вы после того как вводите число и жмете Enter передаете кроме самого числа и символ перевода каретки "\n", он и записывается в "name". Строка кода
in.nextLine();
"съедает" лишний символ перевода каретки и программа работает правильно