Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Minha Versão da resposta e uma dúvida.

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

public class JogoAdivinhacao {
    public static void main(String[] args) {
        Scanner adivinhacao = new Scanner(System.in);
        int numeroaleatorio = new Random().nextInt(100);
        int chutes = 0;
        System.out.println(numeroaleatorio);
        System.out.println("            Jogo da adivinhação!\n \n Você terá 5 tentativas para adivinhar o número que estou pensando.");

        int chuterealizado = 0;

        while (chutes < 5) {
            System.out.println("\n Digite um número de 0 a 100:\n");
            int chuteRealizado = adivinhacao.nextInt();
            chutes++;

            if (chuteRealizado > 100) {
                System.out.println("Número invalido, tentativa desperdiçada!");
            }

            if (chuteRealizado == numeroaleatorio) {
                System.out.println("Parabens! Você sabe ler mentes :)");
                break;
            } else if (chuteRealizado > numeroaleatorio && chutes < 5 && chuteRealizado <= 100) {
                System.out.println("\n Não é este, mas Não desista!  Tente um número MENOR que o anterior.");
            } else if (chuteRealizado < numeroaleatorio && chutes < 5 && chuteRealizado <= 100) {
                System.out.println("\n Não é este, mas Não desista! Tente um número MAIOR que o anterior.");
            }
            if (chutes == 5) {
                System.out.println("\n Poxa, acabaram suas chances, mas você pode iniciar novamente e gerar outro número para ser adivinhado!");
            }
        }
    }
}

// Gostaria de saber como implementar para quando o úsuario digita algo diferente de um número como uma letra por exemplo.
2 respostas
solução!

Olá, Wanessa!

Pelo que entendi, você gostaria de saber como fazer para que o seu programa não quebre caso o usuário digite algo que não seja um número, certo? Isso pode ser feito utilizando o método hasNextInt() da classe Scanner, que verifica se o próximo token a ser lido pode ser interpretado como um int.

Aqui está um exemplo de como você poderia implementar isso no seu código:

while (chutes < 5) {
    System.out.println("\n Digite um número de 0 a 100:\n");

    if (adivinhacao.hasNextInt()) {
        int chuteRealizado = adivinhacao.nextInt();
        chutes++;

        // Restante do seu código...
    } else {
        System.out.println("Entrada inválida, tente novamente com um número!");
        adivinhacao.next(); // Isso é necessário para consumir o token inválido e evitar um loop infinito
    }
}

Nesse exemplo, antes de tentar ler um int, verificamos se o próximo token pode ser interpretado como um int. Se puder, o código prossegue normalmente. Se não puder, exibimos uma mensagem de erro e usamos o método next() para consumir o token inválido e evitar um loop infinito.

Espero ter ajudado e bons estudos!

Era isso mesmo Matheus! Muito obrigada.