Программа пропускает один ввод строки

Есть код:

System.out.println("ВВЕДИТЕ ДАННЫЕ ОБЪЕКТА!");
Scanner input = new Scanner(System.in);
System.out.println("Скорость: ");
speed = input.nextInt();
System.out.println("Вес: ");
weight = input.nextInt();
System.out.println("Тип: ");
type = input.nextLine();
System.out.println("Цвет: ");
color = input.nextLine();
input.close();

Все вводиться правильно, но код всегда после ввода чисел пропускает один ввод строки, но при этом второй работает нормально. В чем может быть проблема?


Ответы (1 шт):

Автор решения: had0uken

Беда в том, что вы когда передаете число, вы нажимаете Enter - тем самым передаете символ перевода строки \n. Этот символ и записывается в ваш следующий nextLine()

Бороться с этим можно так:

  System.out.println("ВВЕДИТЕ ДАННЫЕ ОБЪЕКТА!");
        Scanner input = new Scanner(System.in);
        System.out.println("Скорость: ");
        int speed = input.nextInt();
        System.out.println("Вес: ");
        int weight = input.nextInt();
        System.out.println("Тип: ");
        input.nextLine();                       //Съесть лишний символ
        String type = input.nextLine();
        System.out.println("Цвет: ");
        String color = input.nextLine();
        input.close();
→ Ссылка