Ваш код выглядит хорошо, за исключением оператора println
, который пытается напечатать переменную, которая не существует.
Некоторый момент для улучшения:
- Сканер должен быть закрыт: мы можем использовать так называемый оператор
try-with-resources
: try (Scanner scan = new Scanner(System.in))
. Это автоматически закроет сканер для вас, как только блок try
останется. Более подробная информация здесь: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html - Как заметил другой пользователь: вместо использования if / else при условном присвоении переменной мы можем использовать просто сравнение в качестве присваивания.
Вот окончательный код:
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
int p = scan.nextInt();
boolean involved = (p >= 50 && p <= 150);
System.out.println(involved);
}
}
Кстати, вы также должны проверить, что значение, введенное пользователем, действительно является целым числом. Если я сейчас введу значение «а», я получу InputMismatchException
. Самый простой способ - перехватить это исключение, предоставить пользователю соответствующее сообщение об ошибке и затем выйти из программы.
Вот как я бы это сделал:
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
int p;
try {
p = scan.nextInt();
}catch(InputMismatchException e) {
System.out.println("Value not an integer");
return;
}
boolean involved = (p >= 50 && p <= 150);
System.out.println(involved);
}
}
Надеюсь, это поможет!