Ajuda Java, por favor

5 respostas
migtrooper

Boa noite, podem me ajudar?
Estou começando em Java e está dando erro que não estou conseguindo saber do que se trata.
Eu peço para o usuário entrar com o nome, mas nem aparece nada para digitar e já dá logo esse erro.

5 Respostas

PabloRuiz

Aparentemente ele não está encontrando o valor da linha 15. Minha dica é colocar um break point na linha 15 e rodar um debug para analisar o que está vindo na linha 15.
A segunda dica é tentar entender melhor se o Scanner está implementado corretamente, vou deixar esse link com algumas explicações do Scanner.

L

Você pode Trocar o

String nome = leitor.nextLine();

Por

String nome = leitor.next();
davidbuzatto

A priori, seu código não deveria dar problema na execução, visto que você faz a leitura de uma linha primeiro e depois dos outros tipos. O buffer de entrada vai estar no estado correto para o nextInt() atuar. O “problema” é misturar leitura de linhas com outros tipos. Para evitar esse tipo de situação, sempre leia linha por linha e, para cada linha, converta para o tipo esperado como no exemplo abaixo.

Agora, o que parece ser seu problema realmente, é que você criou um projeto usando o Gradle. Para projetinhos simples, programas de brinquedo com o seu, onde o objetivo é aprender os conceitos básicos, crie projetos usando o Ant: File → New Project → Java with Ant (em categories) → Java Application (em projects).

Além disso, ainda com seu projeto Gradle, faça o seguinte teste. Com o arquivo de código ativo, ou seja, com o cursor do mouse piscando nele, use o atalho Shift+F6 para compilar e executar somente esse arquivo e as dependências dele. Pode ser que funcione. Eu não uso o Gradle, mas vou criar um projeto aqui para testar e logo atualizo essa postagem.

EDIT: criei um projeto Gradle, NetBeans 14, e seu código funcionou normalmente. Atualize seu NetBeans e crie um novo projeto. Prefira o Ant para esses tipos de implementações.

String nome;
int idade;
float cotacaoDolar; // normalmente se usa double não float.

Scanner leitor = new Scanner( System.in );

...
nome = leitor.nextLine();

...
idade = Integer.parseInt( leitor.nextLine() );

...
cotacaoDolar = Float.parseFloat( leitor.nextLine() );
migtrooper

Oi Davi, muito obrigado. Eu rodei com o shift+F6 e funcionou normalmente. Eu não sabia sobre o Gradle, fui conforme o instrutor tinha passado, mas agora vou pelo caminho como você me ensinou. Muito Obrigado mesmo e pela dica do Double também. Como eu sou iniciante, não sabia mesmo sobre isso. Um grande abraço.

migtrooper

Oi Pablo, vou dar uma olhada no seu post sobre Scanner. Muito obrigado.

Criado 12 de julho de 2022
Ultima resposta 13 de jul. de 2022
Respostas 5
Participantes 4