Amigos, eu pesquisei e achei vários tópicos mas por algum motivo, eu não consigo com as soluções anteriores, não sei se é por serem antigas ou por eu simplesmente ser leigo.
Tenho um exercício de imprimir entradas do usuário até ele digitar 0 para parar e adiciona-las em um arraylist.
Eis o código de Cliente
public class Cliente {
private int id;
private String nome;
private int idade;
private String sexo;
private int telefone;
public Cliente(){}
public Cliente(int id, String nome, int idade, String sexo, int telefone) {
this.id = id;
this.nome = nome;
this.idade = idade;
this.sexo = sexo;
this.telefone = telefone;
}
@Override
public String toString() {
return "Cliente{" +
"id=" + id +
", nome='" + nome + '\'' +
", idade=" + idade +
", sexo='" + sexo + '\'' +
", telefone=" + telefone +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public int getTelefone() {
return telefone;
}
public void setTelefone(int telefone) {
this.telefone = telefone;
}
}
E aqui a main:
import java.util.ArrayList;
import java.util.Scanner;
public class Principal extends Cliente {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Cliente c = new Cliente();
ArrayList<Cliente> cliente = new ArrayList<Cliente>();
boolean running = true;
while(running){
System.out.println("Digite seu id: ");
c.setId(sc.nextInt());
if(c.getId() == 0){
System.out.println("Encerrando..");
running = false;
for(Cliente cli : cliente){
System.out.println(cli.toString());
}
}else{
System.out.println("Digite seu nome: ");
c.setNome(sc.next());
System.out.println("Digite sua idade: ");
c.setIdade(sc.nextInt());
System.out.println("Digite seu sexo: ");
c.setSexo(sc.next());
System.out.println("Digite seu telefone: ");
c.setTelefone(sc.nextInt());
cliente.add(c);
}
}
}
}
Tentei mudar esse for each para imprimir c.toString, c.getNome, etc… mas não funcionou.
A ideia é basicamente ir preenchendo os dados do usuário até ele apertar 0. Quando ele aperter 0, o programa deve parar o cadastro e imprimir todos os dados. Mas só está imprimindo o último dado digitado, não sei mais oque fazer.