Routine doesn’t work

Asked

Viewed 33 times

0

I have a loop for the user to enter the student’s name and age. but when compiling, the first part of asking the student’s name is passing by and already falls asking the student’s age. follows the basic code.

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int op = 1;
    String nome = "";
    boolean cadastrouAlunos = false;

    Alunos[] aluno = new Alunos[4];

    while (op != 0) {
        System.out.println("==============INFORME UMA OPÇÃO==============");
        System.out.println("1-CADASTRAR ALUNO");
        System.out.println("5-MOSTRAR ALUNOS");

        op = in.nextInt();

        switch (op) {
            case 1:
                for (int i = 0; i < aluno.length; i++) {
                    System.out.println("Informe o nome do aluno");
                    nome = in.nextLine();

                    System.out.println("Informe a idade do aluno");
                    int idade = in.nextInt();

                    int codigo = i;
                    aluno[i] = new Alunos(nome, codigo, idade);
                    cadastrouAlunos = true;
                }
                break;
            case 5:
                if(!cadastrouAlunos){
                    System.out.println("Antes de tudo, cadastre todos seus aluno!");
                }else{
                    for (Alunos a : aluno) {
                        System.out.println("Aluno: " + a.nome);
                    }
                }
                break;
            case 0:
                System.out.println("Operação cancelada pelo usuário");
                break;
            default:
                System.out.println("Opção não válida");
        }

    }

}

the compilation gets like this:

INFORME UMA OPÇÃO
1-CADASTRAR ALUNO
5-MOSTRAR ALUNOS
1
Informe o nome do aluno
Informe a idade do aluno

2 answers

0


Substitute in.nextLine(); for in.next();

0

Hello the colleague is having buffer problems so replace the line where you read the name and put this there:

name = new Scanner(System.in). nextLine();

Browser other questions tagged

You are not signed in. Login or sign up in order to post.