0

Есть код:

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();

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

Kromster
  • 13,809

1 Answers1

0

Беда в том, что вы когда передаете число, вы нажимаете 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();
had0uken
  • 1,560
  • 2
  • 4
  • 17
  • Понял, и как такое можно починить? – XlAlbertlX Dec 27 '22 at 12:39
  • Добавил в ответ - там строка с комментом. В ней вы "съедаете" лишний символ. И дальше ваша программа продолжает свою работу в нормальном режиме – had0uken Dec 27 '22 at 12:41
  • Спасибо, помогли! – XlAlbertlX Dec 27 '22 at 12:41