Как защититься от ввода пользователя?
public static void main(String[] args) {
System.out.println("Выберите, что хотите сделать:");
System.out.println("1.Шифрование/ расшифровка");
System.out.println("2.Криптоанализ методом Brute Force");
while (true) {
if (scanner.hasNextInt()) {
int userInputMethod = scanner.nextInt();
System.out.println(userInputMethod);
break;
} else {
System.out.println("Введите число от 1 до 2:");
}
}
Хочу сделать так, что бы пользователь вводил число, и если он введет символ или число не от 1 до 2, то вывести текст и еще раз запросить его input
Перепробовал много вариаций этого кода, думаю проблема в том, что неправильно написано условия для цикла while(true), подскажите как это исправить
Ответы (1 шт):
Автор решения: Зонтик
→ Ссылка
Всё очень просто. Считывайте сканнером строку (Не забывайте перехватить исключение, пользователь может ввести буквы), преобразуйте её в число. Потом проверьте, ввёл ли пользователь правильное число. Вообщем, вот код:
boolean cycle = true;
String userInputMethod;
int number;
Scanner scanner = new Scanner(System.in);
while (cycle == true) {
System.out.println("Введите число от 1 до 2:");
userInputMethod = scanner.nextLine();
try{
number = Integer.parseInt(userInputMethod);
if(number < 3 && number > 0){
System.out.println(number);
break;
}
else{
System.out.println("Ошибка! Введено не верное число!");
}
} catch (Exception ex){
System.out.println("Ошибка! Введено не число!");
}
}