czy program może zostać zakończony wcześniej w ramach metrum

Nov 25 2020

Tworzę prostą „grę”, w której użytkownik jest zadawany pytanie i musi udzielić poprawnej odpowiedzi, aby przejść dalej. Oto kod, który obecnie mam na jedno z pytań.

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

Chcę, aby instrukcja if nie uwzględniała wielkości liter i zwracała wartość true, jeśli w skanerze w ogóle jest wprowadzany tygrys. jakby ktoś mógł wprowadzić całe zdanie do skanera, a jeśli słowo tygrys jest gdziekolwiek, wraca jako prawda. ale jeśli tygrys (lub jakakolwiek inna nieprawidłowa odpowiedź na jakiekolwiek inne pytanie zostanie wprowadzona do skanera), chcę, aby program się zatrzymał i nie przechodził do następnego pytania.

Odpowiedzi

1 VinodJayachandran Nov 26 2020 at 05:45

Kilka rzeczy, na które należy zwrócić uwagę.

  1. To, czy kontynuować grę, czy nie, powinno być idealnie kontrolowane przez wywołującego metodę. Obiekt wywołujący metodę powinien zdecydować na podstawie zwracanej wartości prawda lub fałsz
  2. Aby uwzględnić (1) sygnaturę metody, należy zmienić. To nie może być nieważne. Powinien być logiczny.
  3. Nie potrzebujesz drugiego skanera do sprawdzenia, czy zawiera tygrysa

Sprawdź, czy ten kod Ci pomaga

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