1
resposta

[Projeto] meu codigo não funciona gostaria de saber oque fiz de errado ? o numero digitado sempre fala que é menor mesmo sendo maior o numero gerado

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

public class Adivinha {
    public static void main(String[] args) {

        int numeroSecreto = new Random().nextInt(100);
        int tentativas = 0;
        Scanner scanner = new Scanner(System.in);


        while (tentativas <5) {
            System.out.print("Digite um número entre 1 e 100: ");
            int numeroDigitado = scanner.nextInt();
            tentativas++;

            if (numeroDigitado == numeroSecreto) {
                System.out.println("Parabéns voce acertou o numero secreto !");
                break;

            } else if (numeroDigitado < numeroSecreto) {
                System.out.println("O numero secreto é menor que o numero digitado, tente novamente !");
            } else {
                System.out.println("O numero secreto é maior que o numero digitado, tente novamente !");
            }
        }

            if (tentativas == 5) {
                System.out.println("suas chances acabaram, Voce não advinhou o numero ! o numero secreto é: " + numeroSecreto);
            }
    }
}
1 resposta

Olá, Caique! Tudo bem?

Esse problema no seu projeto está acontecendo por conta da verificação que você está fazendo, segue a condição em questão:

if (numeroDigitado < numeroSecreto)

Essa condição valida se o número digitado é menor do que o número secreto, se for, aparecerá uma mensagem dizendo que o número secreto é menor do que o número digitado, mas deveria ser o contrário. Então, para solucionar esse problema, basta mudar o operador de < para >:

if (numeroDigitado > numeroSecreto)

Assim, a mensagem que aparecerá será condizente com o que foi comparado na função if.

Espero ter ajudado e bons estudos!

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