1
resposta

[Solução] Minha Resolução

Minha Solução:

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

public class Jogo {
    public static void main(String[] args) {
        int numeroRandomico = new Random().nextInt(100);
        int chute = 0;
        Scanner scanner = new Scanner(System.in);
        int tentativas = 0;

        System.out.println("""
                *******************
                JOGO DA ADIVINHAÇÃO
                *******************
                
                Tente adivinhar o número de 0 a 100!
                """);

        while (tentativas < 5) {
            tentativas++;
            System.out.printf("Tentativa %d de 5%n", tentativas);

            System.out.println("Digite um numero de 0 a 100: ");
            chute = scanner.nextInt();

            if (chute == numeroRandomico) {
                System.out.println("Parabéns, você acertou!");
                break;
            } else {
                System.out.println("Você errou, tente novamente!");

                if (chute > numeroRandomico) {
                    System.out.println("O número randômico é menor que o chute!");
                } else {
                    System.out.println("O número randômico é maior que o chute!");
                }
            }
        }

        if (!(chute == numeroRandomico)) {
            System.out.printf("O número randômico era %d%n", numeroRandomico);
        }
    }
}

No código da resolução é colocada uma condição a mais no If final que é (chute != numeroRandomico && tentativas == 5), mas essa condição de tentativas == 5 é necessário? Meu código funciona normal sem e eu achei bem redundante, já que o loop já garante que após 5 tentativas o usuário cairá no if subsequente.

1 resposta

Boa noite, Thiago!

A condição tentativas == 5 no if final realmente é redundante. O loop while já controla o número de tentativas, garantindo que o código dentro do if final só será executado após as 5 tentativas ou se o número for adivinhado corretamente. Portanto, a condição tentativas == 5 não é necessária.

Seu código está correto e bem estruturado. A única coisa que você precisa verificar é se o número de tentativas foi atingido e o usuário não acertou o número, o que já é garantido pelo seu loop e pela condição if (!(chute == numeroRandomico)).

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!