1
resposta

eu fiz desse jeito, tem algum jeito de fazer ficar mais curto, ou esse tamanho e ok?

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

public class numeroAleatorio {
static void main() {
int tentativas;
tentativas = 0;

    int numeroGerado = new Random().nextInt(100);
    System.out.println(numeroGerado);

    while (tentativas < 5) {
        tentativas++;
        Scanner numeroAleatorio = new Scanner(System.in);
        System.out.println("coloque seu chute");
        
        int chute = numeroAleatorio.nextInt(); // armazena o valor digitado
        
        if (chute == numeroGerado) {
            System.out.println("Acertou!");
            break;
        } else if (chute < numeroGerado) {
            System.out.println("Seu chute é menor");
        } else {
            System.out.println("Seu chute é maior");
        }
    }
}

}

1 resposta

Olá, Guilherme! Parabéns pelo seu código!

Respondendo direto: o tamanho do seu código está ótimo! A sua lógica está certinha e fácil de ler. No entanto, para que o programa rode sem erros e siga as boas práticas do Java, sugiro apenas 3 ajustes rápidos:

  1. Corrija o método principal: Para o Java reconhecer o início do programa, a assinatura precisa estar completa: public static void main(String[] args).

  2. Mova o Scanner para fora do loop: Coloque a criação do Scanner antes do while. Criá-lo lá dentro faz o Java gastar memória à toa a cada repetição.

  3. Simplifique as variáveis: Você pode declarar e atribuir o valor na mesma linha: int tentativas = 0;.

Veja como fica o código otimizado (também ajustei o nome da classe para começar com letra Maiúscula, que é o padrão no Java):

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

public class NumeroAleatorio { 

    public static void main(String[] args) { // 1. Assinatura corrigida
        int tentativas = 0; // 3. Variável simplificada
        int numeroGerado = new Random().nextInt(100);
        
        System.out.println(numeroGerado); 

        Scanner leitor = new Scanner(System.in); // 2. Scanner criado UMA vez fora do loop

        while (tentativas < 5) {
            tentativas++;
            System.out.println("Coloque seu chute:");
            
            int chute = leitor.nextInt(); 
            
            if (chute == numeroGerado) {
                System.out.println("Acertou!");
                break;
            } else if (chute < numeroGerado) {
                System.out.println("Seu chute é menor");
            } else {
                System.out.println("Seu chute é maior");
            }
        }
        
        leitor.close(); // Boa prática: fechar o Scanner no final
    }
}

Não se preocupe em fazer o código mais curto, mas sim em deixá-lo claro. Você está no caminho certo. Bons estudos!