Рейтинг:
18
Richard MacCutchan
Просто добавьте дополнительную строку в свой код, как показано на рисунке:
System.out.println("Please enter a number between 1 and 20");
num1 = scan.nextInt();
scan.nextLine(); // add this line to consume the newline character
System.out.println("Do you want to square this number?");
Patrice T
Боюсь, что решение не может быть таким простым !
ОП уже использует scan.nextLine() во втором и третьем входах.
Это не соответствует описанию проблемы.
Richard MacCutchan
Да, так оно и есть.
Patrice T
Если добавление scan. nextLine () является решением, то описание должно говорить о пропуске второго ввода.
Richard MacCutchan
Я проверил свое исправление, и оно делает то, что хочет ОП. Если ваш тест не работает, пожалуйста, предоставьте подробную информацию.
Patrice T
В этом случае я подозреваю, что описание проблемы неверно, поэтому предлагаю отладить программу, чтобы увидеть, что происходит на самом деле.
У меня нет Java, чтобы проверить это.
Richard MacCutchan
Он не нуждается в отладке, это простая ошибка. После вызова scan.nextInt();
во входном буфере все еще есть, по крайней мере, неиспользованная новая строка. Итак, следующий звонок scan.nextLine();
будет читать это, а не ввод, введенный пользователем.
Рейтинг:
1
Patrice T
С помощью отладчика вы увидите, что именно num1
, s2
и s1
содержать во время выполнения.
Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.
Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.