можно ли преждевременно завершить программу из метода
Nov 25 2020
Я делаю простую «игру», в которой пользователю задают вопрос, и он должен дать правильный ответ, чтобы двигаться дальше. Это код, который у меня есть на один из вопросов.
public static void Mascot() {
Scanner console = new Scanner(System.in);
System.out.println("what Is our school mascot?");
String Tony = console.nextLine();
String b = Tony;
Scanner scanner= new Scanner(b);
if (scanner.hasNext("tiger")){
System.out.println("Good, next riddle.");
} else{
}
scanner.close();
console.close();
}
Я хочу, чтобы оператор if не учитывал регистр и возвращал true, если тигр вообще вводится в сканер. как будто кто-то может ввести в сканер полное предложение, и если слово тигр где-нибудь встречается, оно возвращается как истина. но если в сканер вводится тигр (или любой другой неправильный ответ на любой другой вопрос, я хочу, чтобы программа остановилась. и не переходила к следующему вопросу.
Ответы
1 VinodJayachandran Nov 26 2020 at 05:45
Здесь нужно отметить пару вещей.
- Продолжать игру или нет, в идеале должно контролироваться вызывающим методом. Вызывающий метод должен принять решение на основе возвращаемого значения true или false.
- Чтобы разместить (1) подпись метода, необходимо изменить. Это не может быть пустым. Это должно быть логическое значение.
- Вам не нужен второй объект сканера, чтобы проверить, есть ли в нем тигр.
Пожалуйста, проверьте, помогает ли вам этот код
public static boolean Mascot() {
Scanner console = new Scanner(System.in);
try {
System.out.println("what Is our school mascot?");
String b = console.nextLine();
if (b.toLowerCase().contains("tiger")){
System.out.println("Good, next riddle.");
return true;
} else{
return false;
}
}
catch(Exception e) {
System.out.println("Exception Occurred");
}
finally {
console.close();
}
return false;
}