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

[Projeto] Jogo da adivinhação

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

public class Main {

public static void main(String[] args) {

    System.out.println("Bem vindo ao jogo de advinhação !!");
    Scanner entrada = new Scanner(System.in);

    //int numero = (int) (Math.random() * 101);
    int numero = new Random().nextInt(100);
    int tentativas = 1;
    //System.out.println("O numero é: " + numero);

    System.out.println("Digite seu palpite: ");
    int jogada = entrada.nextInt();

    while ((numero != jogada) && (tentativas <= 4)){ /* É possível usar o break dentro do while para não ter a
    condição (numero != jogada) mas seria necessário criar mais uma condição no loop else-if (numero == jogada)
    */
        System.out.printf("Voce digitou o número: %d\nessa foi sua: %d tentativa%n", jogada, tentativas);
        if (numero > jogada){
            System.out.println("Sua jogada é menor que o número, tente novamente: ");
            jogada = entrada.nextInt();
        }else{
            System.out.println("Sua jogada é maior que o número, tente novamente: ");
            jogada = entrada.nextInt();
        }
        tentativas ++;
    }
    if ((tentativas <= 5) && (numero == jogada)){
        System.out.printf("Parabens voce adivinhou o número (%d) na tentativa: %d", numero, tentativas);
    }else{
        System.out.printf("Voce usou as suas 5 tentativas, o número era (%d)", numero);
    }
}

}

Alguém sabe me informa se para o computador seria menos custoso colocar todos os condicionais dentro do while??

1 resposta
solução!

E aí, Victor, blz?

Irmão, não, colocar todos os condicionais dentro do laço não melhora a performance do código. Na verdade, isso pode até piorar a performance, pois os condicionais estarão sendo verificados a cada iteração do loop, mesmo que a condição já tenha sido satisfeita.

Do jeito que está, os condicionais são verificados apenas quando necessário, e o loop é interrompido assim que a condição for satisfeita. Dessa forma, o programa evita a execução desnecessária de código e melhora a performance.

Ao colocar todos os condicionais dentro do laço, o programa teria que verificar todas as condições a cada iteração, mesmo que a condição já tenha sido satisfeita, o que poderia diminuir a performance do programa.

É importante encontrar um equilíbrio entre legibilidade do código e performance. No caso desse programa, o código original é mais legível e tem uma boa performance, sem a necessidade de mudanças.