Почему не срабатывает ввод имени второго кота?

package fightClub;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Введите имя первого кота: ");
        String nameFirstCat = scanner.nextLine();
        System.out.print("Введите вес первого кота: ");
        int weigthFirstCat = scanner.nextInt();

        Cat firstCat = new Cat();
        firstCat.setName(nameFirstCat);
        firstCat.setWeigth(weigthFirstCat);

        System.out.print("Введите имя второго кота: ");
        String nameSecondCat = scanner.nextLine();
        System.out.print("Введите вес второго кота: ");
        int weigthSecondCat = scanner.nextInt();

        Cat secondCat = new Cat();
        secondCat.setName(nameSecondCat);
        secondCat.setWeigth(weigthSecondCat);

        System.out.println(firstCat.getName() + " " + 
firstCat.getWeigth());
        System.out.println(secondCat.getName() + " " + 
secondCat.getWeigth());


}

}

Консоль: Введите имя первого кота: Lory Введите вес первого кота: 5 Введите имя второго кота: Введите вес второго кота: 6 Lory 5 6


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

Автор решения: Михаил Карандин

После считывания веса первого кота int weigthFirstCat = scanner.nextInt(); необходимо считать пустую строку, т.е. добавить scanner.nextLine(); тогда все заработает. Можно представить, что после считывания числа сканнером за числом остается невидимый пустой символ, на этой же строчке

P.S. в слове "weigth" опечатка, вес будет "weight"

→ Ссылка