Dúvida na compilação

4 respostas
java
M

package repeticaowhile;

import java.util.Scanner;

public class RepeticaoWhile {

public static void main(String[] args) {
    Scanner teclado = new Scanner(System.in);
    int contador = 0;
    
    
    System.out.print("CADASTRAR SIM = 1 NÃO = 0: ");
    contador = teclado.nextInt();
        
    while(contador!=0){
        System.out.println("NOME: ");
        String nome = teclado.nextLine();
        
        System.out.print("\nIDADE: ");
        int idade = teclado.nextInt();
        
        System.out.print("TELEFONE: ");
        int telefone = teclado.nextInt();
        
        System.out.print("\nADICIONAR MAIS UM CONTADO SIM = 1 NÃO = 0: ");
        contador = teclado.nextInt();
        
    }
}

}

bom pessoal nesse meu código, quando eu coloco ele pra rodar eu n consigo colocar o nome ele pula logo pra idade e n consigo digitar meu nome alguma solução?

obs: estou começando a pouco tempo a programar em java, estou usando o netbeans.

4 Respostas

Rodrigo_Void

Tretas do buffer do Scanner.
Use sempre new Scanner(System.in).nextLine(); e n terá problemas.

M

nossa brigadão, funcionou perfeito vlww.

M

pode me explicar oque esse comando faz só para eu entender realmente?

staroski

O método readLine() lê a linha de texto digitada pelo usuário, consumindo o caractere de quebra de linha, que é gerado ao pressionar ENTER.

Os outros métodos da classe Scanner não consomem a quebra de linha e aí se você chamar por exemplo o método nextInt() duas vezes seguidas você acaba tendo problemas pois na segunda chamada ele vai tentar converter a quebra de linha em um int.

Criado 14 de agosto de 2018
Ultima resposta 14 de ago. de 2018
Respostas 4
Participantes 3