Exercício de número randômico

Boa tarde,

estou tentado resolver o seguinte exercicio: Crie um jogo para o usuário descobrir um número sorteado de 1 a 100. A cada tentativa dele, forneça uma dica mostrando se o número é maior ou menor. Quando ele descobrir exiba uma mensagem de parabéns e mostre em quantas tentativas ele conseguiu.

Consegui desenvolver a lógica do programa, mas ao entrar com o numero certo em vez de imprimir “Parabéns, você acertou!”, nada acontece.

Segue o código que digitei até então:

Scanner in = new Scanner(System.in);

	int num = 0;
	int ale = (int) (1 + Math.random() * (100 - 1));
	int i = 0;

	System.out.println(ale);

	while (num != ale) {

		if (i == 0) {
			i++;
			System.out.println("Entre com um número de 1 á 100:");
			num = in.nextInt();
		}

		if (num < ale) {
			System.out.println("O número sorteado é maior que " + num);
			System.out.println("\nEntre com outro número:");
			num = in.nextInt();

		} else if (num > ale) {
			System.out.println("O número sorteado é menor que " + num);
			System.out.println("\nEntre com outro número:");
			num = in.nextInt();

		} else {
			System.out.println("Parabéns voce acertou!");

		}

Desta forma só irá funcionar se o primeiro valor digitado for o correto.

Nas demais entradas não funcionará pois você irá digitar o valor correto dentro deste if

ou deste

e nunca no else.

Para resolver retire este if

e abaixo dele acione

if (num == ale) { System.out.println("Parabéns voce acertou!"); }

Ficando desta forma

while (num != ale) {

        if (i == 0) {
            i++;
            System.out.println("Entre com um número de 1 á 100:");
            num = in.nextInt();
        }

        if (num < ale) {
            System.out.println("O número sorteado é maior que " + num);
            System.out.println("\nEntre com outro número:");
            num = in.nextInt();

        } else if (num > ale) {
            System.out.println("O número sorteado é menor que " + num);
            System.out.println("\nEntre com outro número:");
            num = in.nextInt();
        }
        
        if (num == ale) {
            System.out.println("Parabéns voce acertou!");
        }
    }
1 curtida

Poxa, uma solução tão simples, mas eu fiz de tudo menos isso! Obrigado novamente!