Dúvida ao listar um Array

11 respostas
J

Gente, é a primeira vez que eu posto uma dúvida aqui e creio que sairei com a solução.
É uma dúvida que acho que vai ser fácil, porém não encontro de jeito nenhum.
To fazendo um código com array, e preciso listar esse array. Fiz pelo switch case.
Criei um método para listar e quando chamo no case 2, ele não me mostrar nenhum erro, mas não lista na saída.
case 1 é para cadastrar os itens e o case 2 listaria. Vou colocar o código.
Desculpa se a dúvida for muito simples, mas realmente não estou encontrando!!

public static void lista(Aluno c[]){

for(Aluno t:c){

if(t != null){

System.out.println(t.getNum());

System.out.println(t.getAno());

System.out.println(t.getNome());

System.out.println(t.getDt_nas());

System.out.println(t.getTel());

System.out.println(t.getEmail());

}

}

}

O nome original da array é Aluno a[]
então no meu case 2 eu chamo
case 2: lista(a);

vou botar um trecho do código de cadastro tb, pois pode ser o erro nele.

while(true){

int op = menu();

switch(op){

case 1: if(cont < 10){

a[cont] = new Aluno();

System.out.println(Número:);

int number = new Scanner(System.in).nextInt();

a[cont].setNum(number);

Desde já agradeço a ajuda.

11 Respostas

pmlm

joao0212:

int number = new Scanner(System.in).nextInt();
</blockquote>

Para ler do console deves usar apenas o nextLine. Os outros métodos poderão dar-te estes problemas aparentemente inexplicáveis de in/out…

J

pmlm:
joao0212:

int number = new Scanner(System.in).nextInt();
</blockquote>

Para ler do console deves usar apenas o nextLine. Os outros métodos poderão dar-te estes problemas aparentemente inexplicáveis de in/out…

Mas creio que o problema não seja isso, pois ele está cadastrando normalmente, a unica coisa que acontece, é que ele não tá pegando os valores e me voltando na tela, quando aperto a opção 2 do menu!

pgioseffi

Põe o código do método menu() aí.

Tenta colocar entre as tags [code] para ficar mais legível teu código. Do jeito que tá complica.

J
import java.util.Scanner;

public class Cadastro {

    public static void main(String[]args){
        Aluno a[] = new Aluno[10];
        int cont = 0;
        
        while(true){
            int op = menu();
            switch(op){
                case 1: if(cont < 10){
                    a[cont] = new Aluno();
                    System.out.println("Número:");
                    int number = new Scanner(System.in).nextInt();
                    a[cont].setNum(number);
                    System.out.println("Ano:");
                    int year = new Scanner(System.in).nextInt();
                    a[cont].setAno(year);
                    System.out.println("Nome:");
                    String name = new Scanner(System.in).next();
                    a[cont].setNome(name);
                    System.out.println("Data");
                    String date = new Scanner(System.in).next();
                    a[cont].setDt_nas(date);
                    System.out.println("Telefone");
                    long telephone = new Scanner(System.in).nextLong();
                    a[cont].setTel(telephone);
                    System.out.println("E-mail:");
                    String mail = new Scanner(System.in).next();
                    a[cont].setEmail(mail);
                    System.out.println("Cadastrado!!");
                    cont++;
                }
                break;    
                case 2: lista(a);
                break;    
                case 3:
                break;
                case 4:
                break;
                case 5:
                break; 
                case 6:
                break;
            }
        }
            
    }
    public static int menu(){
        System.out.println(" 1.Inserir Registros\n 2.Listar\n 3.Pesquisar por Nome\n 4.Pesquisar por Posição\n"
                + " 5.Alterar Registro\n 6.Eliminar um Registro\n Escolha a Opção: ");
        return new Scanner(System.in).nextInt();       
}
    public static void lista(Aluno c[]){
        for(Aluno t:c){
           if(t != null){
                System.out.println(t.getNum());
                System.out.println(t.getAno());
                System.out.println(t.getNome());
                System.out.println(t.getDt_nas());
                System.out.println(t.getTel());
                System.out.println(t.getEmail());
            }
        }
    }
}
J
pgioseffi:
Põe o código do método menu() aí.

Tenta colocar entre as tags [code] para ficar mais legível teu código. Do jeito que tá complica.

Coloquei o código todo na tag [code]
vlw!!

pgioseffi

Se você chamar a opção de menu dois antes de inserir nada vai sair mesmo…

J

Mas eu insiro todos os dados e mesmo assim ele não chama!!

pgioseffi

Rodei teu código aqui e funcionou legal…

Tenta com essa minha customização que usei para testar teu código:

import java.util.Scanner;

public class Cadastro {

	public static void main(final String[] args) {
		final Aluno a[] = new Aluno[10];
		int cont = 0;
		final Cadastro c = new Cadastro();

		while (true) {
			final int op = Cadastro.menu();
			switch (op) {
				case 1:
					if (cont &lt; 10) {
						a[cont] = c.new Aluno();
						System.out.println("Número:");
						final int number = new Scanner(System.in).nextInt();
						a[cont].setNum(number);
						System.out.println("Ano:");
						final int year = new Scanner(System.in).nextInt();
						a[cont].setAno(year);
						System.out.println("Nome:");
						final String name = new Scanner(System.in).next();
						a[cont].setNome(name);
						System.out.println("Data");
						final String date = new Scanner(System.in).next();
						a[cont].setDt_nas(date);
						System.out.println("Telefone");
						final long telephone = new Scanner(System.in)
								.nextLong();
						a[cont].setTel(telephone);
						System.out.println("E-mail:");
						final String mail = new Scanner(System.in).next();
						a[cont].setEmail(mail);
						System.out.println("Cadastrado!!");
						cont++;
					}
					break;
				case 2:
					Cadastro.lista(a);
					break;
				case 3:
					break;
				case 4:
					break;
				case 5:
					break;
				case 6:
					break;
			}
		}

	}

	public static int menu() {
		System.out
				.println(" 1.Inserir Registros\n 2.Listar\n 3.Pesquisar por Nome\n 4.Pesquisar por Posição\n"
						+ " 5.Alterar Registro\n 6.Eliminar um Registro\n Escolha a Opção: ");
		return new Scanner(System.in).nextInt();
	}

	public static void lista(final Aluno c[]) {
		for (final Aluno t : c) {
			if (t != null) {
				System.out.println(t.getNum());
				System.out.println(t.getAno());
				System.out.println(t.getNome());
				System.out.println(t.getDt_nas());
				System.out.println(t.getTel());
				System.out.println(t.getEmail());
			}
		}
	}

	private class Aluno {
		private int num;
		private int ano;
		private String nome;
		private String dt_nas;
		private long tel;
		private String email;

		public int getNum() {
			return this.num;
		}

		public void setNum(final int num) {
			this.num = num;
		}

		public int getAno() {
			return this.ano;
		}

		public void setAno(final int ano) {
			this.ano = ano;
		}

		public String getNome() {
			return this.nome;
		}

		public void setNome(final String nome) {
			this.nome = nome;
		}

		public String getDt_nas() {
			return this.dt_nas;
		}

		public void setDt_nas(final String dt_nas) {
			this.dt_nas = dt_nas;
		}

		public long getTel() {
			return this.tel;
		}

		public void setTel(final long tel) {
			this.tel = tel;
		}

		public String getEmail() {
			return this.email;
		}

		public void setEmail(final String email) {
			this.email = email;
		}
	}
}
J
pgioseffi:
Rodei teu código aqui e funcionou legal...

Tenta com essa minha customização que usei para testar teu código:

import java.util.Scanner;

public class Cadastro {

	public static void main(final String[] args) {
		final Aluno a[] = new Aluno[10];
		int cont = 0;
		final Cadastro c = new Cadastro();

		while (true) {
			final int op = Cadastro.menu();
			switch (op) {
				case 1:
					if (cont &lt; 10) {
						a[cont] = c.new Aluno();
						System.out.println(&quot;Número:&quot;);
						final int number = new Scanner(System.in).nextInt();
						a[cont].setNum(number);
						System.out.println(&quot;Ano:&quot;);
						final int year = new Scanner(System.in).nextInt();
						a[cont].setAno(year);
						System.out.println(&quot;Nome:&quot;);
						final String name = new Scanner(System.in).next();
						a[cont].setNome(name);
						System.out.println(&quot;Data&quot;);
						final String date = new Scanner(System.in).next();
						a[cont].setDt_nas(date);
						System.out.println(&quot;Telefone&quot;);
						final long telephone = new Scanner(System.in)
								.nextLong();
						a[cont].setTel(telephone);
						System.out.println(&quot;E-mail:&quot;);
						final String mail = new Scanner(System.in).next();
						a[cont].setEmail(mail);
						System.out.println(&quot;Cadastrado!!&quot;);
						cont++;
					}
					break;
				case 2:
					Cadastro.lista(a);
					break;
				case 3:
					break;
				case 4:
					break;
				case 5:
					break;
				case 6:
					break;
			}
		}

	}

	public static int menu() {
		System.out
				.println(&quot; 1.Inserir Registros\n 2.Listar\n 3.Pesquisar por Nome\n 4.Pesquisar por Posição\n&quot;
						+ &quot; 5.Alterar Registro\n 6.Eliminar um Registro\n Escolha a Opção: &quot;);
		return new Scanner(System.in).nextInt();
	}

	public static void lista(final Aluno c[]) {
		for (final Aluno t : c) {
			if (t != null) {
				System.out.println(t.getNum());
				System.out.println(t.getAno());
				System.out.println(t.getNome());
				System.out.println(t.getDt_nas());
				System.out.println(t.getTel());
				System.out.println(t.getEmail());
			}
		}
	}

	private class Aluno {
		private int num;
		private int ano;
		private String nome;
		private String dt_nas;
		private long tel;
		private String email;

		public int getNum() {
			return this.num;
		}

		public void setNum(final int num) {
			this.num = num;
		}

		public int getAno() {
			return this.ano;
		}

		public void setAno(final int ano) {
			this.ano = ano;
		}

		public String getNome() {
			return this.nome;
		}

		public void setNome(final String nome) {
			this.nome = nome;
		}

		public String getDt_nas() {
			return this.dt_nas;
		}

		public void setDt_nas(final String dt_nas) {
			this.dt_nas = dt_nas;
		}

		public long getTel() {
			return this.tel;
		}

		public void setTel(final long tel) {
			this.tel = tel;
		}

		public String getEmail() {
			return this.email;
		}

		public void setEmail(final String email) {
			this.email = email;
		}
	}
}

Beleza cara, brigado!! Não vou ter como testar agora, mas ainda hoje posto o resultado.
Dando certo, agradeço e já mudo pra resolvido o título do post!!

J

Desculpa a demora pra fazer o teste, mas infelizmente não deu certo desse novo jeito!!

J

Alguém?

Criado 12 de abril de 2013
Ultima resposta 16 de abr. de 2013
Respostas 11
Participantes 3