How to return the values of an arraylist in Java

0

I can not return the arraylist values. I created a Student class with some methods. In another class I create a Student-type arraylist and add values. But when I show it, nothing appears. I used foreach to traverse the array.

import java.util.Scanner;
import java.util.ArrayList;

public class Aluno1{

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        ArrayList<Aluno> alunos = new ArrayList<Aluno>();
        int opcao, opcao2;

        do{
            System.out.println("0 - Sair\n1 - Adicionar novo aluno\n2 - Mostrar todos os alunos");
            opcao = input.nextInt();


            if(opcao == 1){
                System.out.println("Digite o nome do aluno: ");
                String nome = input.next();
                Aluno aluno = new Aluno(nome);//Instancia um objeto do tipo Aluno
                alunos.add(aluno);//Adiciona no arraylist

                do{
                    System.out.println("0 - Sair\n1 - Adicionar nota");
                    opcao2 = input.nextInt();

                    if(opcao2 == 1){
                        System.out.println("Digite a nota: ");
                        aluno.getNota().add(input.nextDouble());//Adiciona notas enquanto não for digitado zero
                    }

                }while(opcao2 != 0);

            if(opcao == 2){
                for(Aluno item : alunos){//Imprime os valores do arraylist e chamando seus métodos
                    System.out.println("Nome: " + item.getNome());
                    System.out.println("Média: " + item.getMedia());
                    System.out.println("Desvio Padrão: " + item.getDesvioPadrao());
                    System.out.println("Variância: " + item.getVariancia());
                }
            }

            }
        }while(opcao != 0);
    }
}
    
asked by anonymous 06.10.2017 / 20:04

1 answer

2

Your second if is inside the first, the way it is, it never saw listing the items of your ArrayList

Your code should look like this:

import java.util.Scanner;
import java.util.ArrayList;

public class Aluno {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        ArrayList<Aluno> alunos = new ArrayList<Aluno>();
        int opcao, opcao2;

        do {
            System.out.println("0 - Sair\n1 - Adicionar novo aluno\n2 - Mostrar todos os alunos");
            opcao = input.nextInt();


            if (opcao == 1) {
                System.out.println("Digite o nome do aluno: ");
                String nome = input.next();
                Aluno aluno = new Aluno(nome);//Instancia um objeto do tipo Aluno
                alunos.add(aluno);//Adiciona no arraylist

                do {
                    System.out.println("0 - Sair\n1 - Adicionar nota");
                    opcao2 = input.nextInt();

                    if (opcao2 == 1) {
                        System.out.println("Digite a nota: ");
                        aluno.getNota().add(input.nextDouble());//Adiciona notas enquanto não for digitado zero
                    }

                } while (opcao2 != 0);
            }

            if (opcao == 2) {
                for (Aluno item : alunos) {//Imprime os valores do arraylist e chamando seus métodos
                    System.out.println("Nome: " + item.getNome());
                    System.out.println("Média: " + item.getMedia());
                    System.out.println("Desvio Padrão: " + item.getDesvioPadrao());
                    System.out.println("Variância: " + item.getVariancia());
                }
            }
        } while (opcao != 0);
    }
}

Note: I changed more than if in the class, added some spaces to make it clearer and removed the class name number

    
06.10.2017 / 20:15