¿Se puede terminar el programa antes de tiempo dentro de una

Nov 25 2020

Estoy haciendo un "juego" simple en el que se le hace una pregunta al usuario y debe dar la respuesta correcta para continuar. Este es el código que tengo actualmente para una de las preguntas.

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();
}

Quiero que la declaración if no distinga entre mayúsculas y minúsculas y devuelva verdadero si se ingresa tiger en el escáner. como si alguien pudiera ingresar una oración completa en el escáner y si la palabra tigre está en cualquier lugar, regresa como verdadera. pero si el tigre (o cualquier otra respuesta incorrecta para cualquier otra pregunta se ingresa en el escáner, quiero que el programa se detenga y no continúe con la siguiente pregunta.

Respuestas

1 VinodJayachandran Nov 26 2020 at 05:45

Un par de cosas a tener en cuenta aquí.

  1. Idealmente, la persona que llama del método debe controlar si continuar el juego o no. La persona que llama al método debe decidir basándose en el valor de retorno verdadero o falso
  2. Para adaptarse a (1) la firma del método debe cambiar. No puede ser nulo. Debe ser booleano.
  3. No necesita el segundo objeto del escáner para verificar si contiene tiger

Comprueba si este código te ayuda

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;
    }