Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida na execução

Estou tendo dificuldade na hora da exucução do código. Quando digito um número, mesmo ele sendo menor, o console ainda me diz que o número secreto é maior. O que poderia ser? Segue meu código abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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

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

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

        while (numeroDeTentativas < 5) {
            System.out.println("Digite um número entre 1 e 100");
            int numeroDigitado = leitor.nextInt();
            numeroDeTentativas++;

            if (numeroDigitado == numeroAleatorio) {
                System.out.println("Parabéns! Você acertou o número secreto com " + numeroDeTentativas);
                break;
            } else if (numeroDigitado > numeroAleatorio) {
                System.out.println("O número secreto é maior que o número digitado");
            } else {
                System.out.println("O número secreto é menor que o número digitado");
            }

            if (numeroDeTentativas == 5) {
                System.out.println("Você perdeu! O número secreto era " + numeroAleatorio);
            }
        }
    }
}
1 resposta
solução!

Oi, Guilherme, tudo bem?

Pelo código que você compartilhou, parece que você está no caminho certo para criar o jogo de adivinhação em Java. No entanto, notei um pequeno erro na sua lógica que está causando o problema que você mencionou.

O problema está na condição:

else {
    System.out.println("O número secreto é menor que o número digitado");
}

Essa condição sobrepõem a condição que verifica se o número é maior e, portanto, qualquer número que não seja igual ao número secreto leva a mensagem de que o número secreto é menor que o número digitado. Uma possível correção usar um else if para verificar quando o número digitado for menor que o número secreto. Ficaria assim:

if (numeroDigitado == numeroAleatorio) {
    System.out.println("Parabéns! Você acertou o número secreto com " + numeroDeTentativas + " tentativas.");
    break;
} else if (numeroDigitado > numeroAleatorio) {
    System.out.println("O número secreto é menor que o número digitado.");
} else if (numeroDigitado < numeroAleatorio) {
    System.out.println("O número secreto é maior que o número digitado.");
}

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

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