Alguém poderia me ajudar pois quando executo o código não deixa eu inserir o próximo cliente.
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n;
System.out.println("Informe o numero de Clientes: ");
n = sc.nextInt();
Cliente[] clientes = new Cliente[n];
for(int i = 0; i < n; i++){
System.out.println("Nome do" + (i + 1) + "º Cliente: ");
clientes[i].nome = sc.next();
}
for(int i = 0;i < n; i++){
System.out.println(clientes[i].nome);
}
Opa Cleyton,
Então cara, você tá tentando acessar um objeto que não existe. Tá dando um NullPointerException
né?
Quando você inicializa um array de objetos, por padrão, todos os elementos do array são null
. Digamos que, por exemplo, o usuário te diga que quer cadastrar 4 clientes, certo?
Vamos ter isso aqui:
int n = 4;
Cliente[] clientes = new Cliente[n];
Nesse momento, no array clientes
, temos isso:
[null, null, null, null]
Certo?
Dentro do primeiro for
, você está fazendo:
clientes[i].nome = sc.next();
Na primeira iteração, i
vale 0
. A posição 0
do array clientes
é null
, como comentei antes. Você está fazendo:
null.nome = sc.next();
Antes de poder definir o nome de um cliente, você precisa ter um cliente. Para criar um cliente para cada posição, faz o seguinte, no primeiro for
:
for (int i = 0; i < n; i++) {
clientes[i] = new Cliente(); // adiciona essa linha
System.out.println("Nome do" + (i + 1) + "º Cliente: ");
clientes[i].nome = sc.next();
}
1 curtida
Muito obrigado cara!Deu Certinho!