1
resposta

[Dúvida] JogoDeAdivinhacao - Dúvida

import java.util.Random; import java.util.Scanner;

public class JogodeAdivinhacao { public static void main(String[] args) { Scanner leitura = new Scanner(System.in);

    int numeroAleatorio = new Random().nextInt(100);

    System.out.println("Bem vindo/a ao Fantástico Jogo de Adivinhação! Você terá 5 tentativas para acertar um número aleatório entre 0 e 100.");

    int contador = 1;
    while (contador <=5) {
        System.out.println("Tentativa " + contador + ": Insira um número aleatório entre 0 e 100");
        int tentativa = leitura.nextInt();

        if (tentativa < numeroAleatorio) {
            System.out.println("Insira um número maior!");
        } else if (tentativa > numeroAleatorio) {
            System.out.println("Insira um número menor!");
        } else {
            System.out.println("Parabéns! Você acertou o Jogo de Adivinhação.");
            break;
        }
        contador++;
    }

    if (contador > 5) {
        System.out.println("Infelizmente suas tentativas se esgotaram! O número correto era: " + numeroAleatorio);
    }

}

}

// MINHA DÚVIDA É: O código roda perfeitamente para o que foi proposto porém após a 5ª tentativa, caso o usuário não acerte o número, ainda aparece a mensagem Insira um número maior/Insira um número menor em vez de aparecer direto a mensagem que as tentativas foram esgotadas. Como resolvo esse problema? Agradeço desde já.

1 resposta

Olá, Bruno!

Pelo código que você compartilhou, percebi que você está utilizando um loop while para controlar as tentativas do usuário. No entanto, você está verificando se o contador é maior que 5 apenas após o loop. Por isso, mesmo após a 5ª tentativa, o programa continua executando o loop e exibindo as mensagens "Insira um número maior!" ou "Insira um número menor!".

Para resolver esse problema, você pode adicionar uma condição dentro do loop para verificar se o contador é igual a 5. Caso seja verdadeiro, você pode exibir a mensagem informando que as tentativas foram esgotadas e utilizar a instrução break; para interromper o loop. Assim, o programa não exibirá as mensagens de comparação após a 5ª tentativa.

Segue abaixo um exemplo de como você pode fazer essa modificação no seu código:

while (contador <= 5) {
    System.out.println("Tentativa " + contador + ": Insira um número aleatório entre 0 e 100");
    int tentativa = leitura.nextInt();

    if (tentativa < numeroAleatorio) {
        System.out.println("Insira um número maior!");
    } else if (tentativa > numeroAleatorio) {
        System.out.println("Insira um número menor!");
    } else {
        System.out.println("Parabéns! Você acertou o Jogo de Adivinhação.");
        break;
    }

    contador++;

    if (contador == 5) {
        System.out.println("Infelizmente suas tentativas se esgotaram! O número correto era: " + numeroAleatorio);
        break;
    }
}

Dessa forma, após a 5ª tentativa, o programa exibirá a mensagem informando que as tentativas foram esgotadas e não exibirá mais as mensagens de comparação.

Espero ter ajudado e bons estudos!