Quando o número digitado pelo usuário é menor do que o número que deve ser adivinhado, o programa exibe a mensagem informando que o número a ser adivinhado é maior do que o número digitado. E vice-versa. Isso é um bug?
Quando o número digitado pelo usuário é menor do que o número que deve ser adivinhado, o programa exibe a mensagem informando que o número a ser adivinhado é maior do que o número digitado. E vice-versa. Isso é um bug?
Fala Gabriel, de boa ?
Parece que sim, consegue postar pra gente o código que rodou pra gente ver onde está o problema ?
import java.util.Random; import java.util.Scanner;
public class JogoAdivinhacao {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
int numeroGerado = new Random().nextInt(100); // gera um número aleatório entre 0 e 100
int tentativas = 0;
while (tentativas < 5) {
System.out.print("Digite um número entre 0 e 100: ");
int numeroDigitado = leitor.nextInt();
tentativas++;
if (numeroDigitado == numeroGerado) {
System.out.println("Parabéns, você acertou o número em " + tentativas + " tentativas!");
break; // interrompe o loop while
} else if (numeroDigitado < numeroGerado) {
System.out.println("O número digitado é menor que o número gerado.");
} else {
System.out.println("O número digitado é maior que o número gerado.");
}
}
if (tentativas == 5) {
System.out.println("Você não conseguiu adivinhar o número em 5 tentativas. O número era " + numeroGerado);
}
}
}
Opa, e ae Gabriel, tranquilo?
O problmea está apenas na lógica de comparação, se você inverter a condição } else if (numeroDigitado < numeroGerado) {
para } else if (numeroGerado < numeroDigitado) {
, vai ver que vai conseguir consertar o bug do seu código
ou simplesmente alterando a mensagem :
} else if (numeroDigitado < numeroGerado) {
System.out.println("O número digitado é maior que o número gerado.");
} else {
System.out.println("O número digitado é menor que o número gerado.");
}
Espero ter ajudado.