Dúvida na compilação

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.

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

nossa brigadão, funcionou perfeito vlww.

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

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.