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.
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.
Você pode Trocar o
String nome = leitor.nextLine();
Por
String nome = leitor.next();
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() );
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.
Oi Pablo, vou dar uma olhada no seu post sobre Scanner. Muito obrigado.