Почему не работает код на Java
Scanner scanner = new Scanner(System.in);
System.out.println("Width:");
int width = scanner.nextInt();
System.out.println("Height:");
int height = scanner.nextInt();
System.out.println("Name:");
String name = scanner.nextLine();
GUI frame = new GUI(name, width, height);
Программа спрашивает высоту, ввожу высоту, спрашивает длину, ввожу длину, спрашивает имя и сражу же создаёт объект класса GUI, не дожидаясь моего ответа
Ответы (2 шт):
Автор решения: Анастасия
→ Ссылка
nextInt() не читает следующий символ новой строки, поэтому первая nextLine() (которая возвращает оставшуюся часть текущей строки) всегда будет возвращать пустую строку.
Попробуйте, например, изменить свой код так:
Scanner scanner = new Scanner(System.in);
System.out.println("Width:");
int width = scanner.nextInt();
System.out.println("Height:");
int height = scanner.nextInt();
System.out.println("Name:");
String name = "";
while (!(name = scanner.nextLine()).isEmpty()) { //проверка на пустую строку, когда еще ничего не введено
GUI frame = new GUI(name, width, height);
}
Автор решения: Виталий
→ Ссылка
Либо же, если это не важно, поставить name в начале.
Scanner scanner = new Scanner(System.in);
System.out.println("Name:");
String name = scanner.nextLine();
System.out.println("Width:");
int width = scanner.nextInt();
System.out.println("Height:");
int height = scanner.nextInt();
GUI frame = new GUI(name, width, height);