o programa pode ser encerrado mais cedo dentro de um período

Nov 25 2020

Estou fazendo um "jogo" simples onde o usuário faz uma pergunta e deve dar a resposta correta para seguir em frente. Este é o código que tenho atualmente para uma das perguntas.

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

Eu quero que a instrução if não faça distinção entre maiúsculas e minúsculas e retorne true se tigre for inserido no scanner. como se alguém pudesse inserir uma frase completa no scanner e se a palavra tigre estiver em qualquer lugar, ela retorna como verdadeira. mas se tigre (ou qualquer outra resposta incorreta para qualquer outra pergunta for inserida no scanner, quero que o programa pare e não continue para a próxima pergunta.

Respostas

1 VinodJayachandran Nov 26 2020 at 05:45

Algumas coisas a serem observadas aqui.

  1. Se deve continuar ou não o jogo, idealmente deve ser controlado pelo chamador do método. O chamador do método deve decidir com base no valor de retorno verdadeiro ou falso
  2. Para acomodar (1) a assinatura do método precisa ser alterada. Não pode ser vazio. Deve ser booleano.
  3. Você não precisa do segundo objeto de scanner para verificar se ele contém tigre

Verifique se este código o ajuda

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