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

[Projeto] Meu código

Segue abaixo a minha resolução do desafio apresentado.

Em relação ao código apresentado pelo professor, acrescentei algumas istrução para que o objetivo do jogo fique mais claro para o usuário.

No lugar do while eu utilizei o for, sinceramente eu não sei o porque KKK. Apesar disso o código funcionou perfeitamente.

Acredito que pequei na utilização excessiva do if poderia ter trocado por else if.

Apesar dos erros, o código funcionou.

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

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

        int tentativas = 0;
        int numeroAleatorio = 0;
        int resposta = 0;
        Scanner leitura = new Scanner(System.in);
        numeroAleatorio =  new Random().nextInt(100);
        System.out.println("Foi gerado um número aleatório entre 0 e 100, seu objetivo é descobrir qual é esse número. Vocẽ tem 5 tentativas.");

        for (; tentativas < 5; tentativas++){
            System.out.println("Tente adivinhar o número");
            resposta = leitura.nextInt();

            if (resposta < numeroAleatorio) {
                System.out.println("O número digitado é menor que o número sorteado");
            }

            if (resposta > numeroAleatorio) {
                System.out.println("O número digitado é maior que o número sorteado");
            }

            if (resposta == numeroAleatorio) {
                System.out.println("Parabéns, você acertou. O número sorteado é " + numeroAleatorio);
                break;
            }


        }

        if (tentativas == 5) {
            System.out.println("Você esgotou todas as tentativas, o numero sorteado era " + numeroAleatorio);
        }

    }



}

1 resposta
solução!

Olá, Nícolas! Tudo joia?

Que bom ver que você está se esforçando e criando suas próprias soluções. Isso é muito importante para o aprendizado!

Em relação ao seu código, você fez um ótimo trabalho. A substituição do while pelo for não é um problema, ambos são loops e possuem a mesma função nesse contexto. A diferença entre eles é que o for é geralmente usado quando sabemos o número exato de vezes que queremos que o loop seja executado, enquanto o while é mais usado quando não sabemos quantas vezes o loop precisa ser executado.

Quanto ao uso excessivo do if, você está correto. Poderia ter usado else if para evitar a verificação de todas as condições, mesmo depois de uma delas ser verdadeira. Aqui está como poderia ser:

for (; tentativas < 5; tentativas++){
    System.out.println("Tente adivinhar o número");
    resposta = leitura.nextInt();

    if (resposta < numeroAleatorio) {
        System.out.println("O número digitado é menor que o número sorteado");
    }
    else if (resposta > numeroAleatorio) {
        System.out.println("O número digitado é maior que o número sorteado");
    }
    else {
        System.out.println("Parabéns, você acertou. O número sorteado é " + numeroAleatorio);
        break;
    }
}

No código acima, se a primeira condição if for verdadeira, as outras condições não serão verificadas, economizando tempo de execução.

Continue com o bom trabalho e continue questionando e experimentando, isso é uma parte importante da jornada de aprendizado.

Bons estudos!