Если пользователь при первом вводе ввёл значение типа String (и из-за этого scanner.hasNextInt() вернул false), то ему нужно будет во второй раз ввести ту же самую строку, чтобы условие scanner.hasNextLine() вернуло true? if (scanner.hasNextInt()) { int number = scanner.nextInt(); ... } else if (scanner.hasNextLine()) { String line = scanner.nextLine(); ... } Или если при первом вводе значение оказалось не подходящего под метод "hasNext..." типа данных, то это же самое введённое значение передастся следующему scanner.next...? То есть в следующий раз, когда пользователь должен ввести что-то сам, автоматически передастся значение из прошлого ввода, потому что прошлую проверку оно не прошло?