Primeiro programa em Java - Preenchimento do Vetor

2 respostas
java
A

Fala Galera !

Sou iniciante em JAVA, e estou fazendo meu primeiro programa. Ele consta em cadastrar times e partidas, em um campeonato de futebol.
Ao executar, ele funciona corretamente mas no momento de preencher os campos, ele pula uma e aceita somente o seguinte.

Exemplo:

Digite a opção que deseja:

1 - Cadastrar Times.
2 - Cadastrar Partidas.

Digite o código do Time: 01
Digite o nome do Time: Digite a data de fundação do Time:

Gostaria que me ajudassem nessa parte.

Segue o código:

CLASSE 1

public class Times {    
    private Integer codigo;
    private String nome;
    private String data_fund;

public Integer getCodigo() {
    return codigo;
}

public void setCodigo(Integer codigo) {
    this.codigo = codigo;
}

public String getNome() {
    return nome;
}

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

public String getdata_fund() {
    return data_fund;
}

public void setdata_fund(String data_fund) {
    this.data_fund = data_fund;
}
 }

CLASSE 2

public class Partidas {

String TimeA;
String TimeB;
int Placar_timeA;
int Placar_timeB;
int pub_presente;


public String getTimeA() {
    return TimeA;
    }

    public String TimeB() {
    return TimeB;
    }

    public int Placar_timeA() {
    return Placar_timeA;
    }
    
    public int Placar_timeB() {
        return Placar_timeB;
        }
    
    public int pub_presente() {
        return pub_presente;
        }
    
public void setTimeA(String TimeA) {
    this.TimeA = TimeA;
    }

    public void setTimeB(String TimeB) {
    this.TimeB = TimeB;
    }

    public void setPlacar_timeA(int Placar_timeA) {
    this.Placar_timeA = Placar_timeA;
    }
    
    public void setPlacar_timeB(int Placar_timeB) {
        this.Placar_timeB = Placar_timeB;
        }

    public void setpub_presente(int pub_presente) {
        this.pub_presente = pub_presente;
        }

}

MAIN

import java.util.Scanner;


public class Main {


public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner entrada = new Scanner(System.in);
    
    
    Times [] b ;
    b = new Times [20];
    
    Partidas [] p ;
    p = new Partidas [20];

    int op = 0;
    
    System.out.print("Digite a opção que deseja: \n");
    System.out.print("1 - Cadastrar Times. \n");
    System.out.print("2 - Cadastrar Partidas. \n");
    op = entrada.nextInt();
    
    if (op > 2 ){
        
        System.out.print("Opção INCORRETA! Inicie novamente \n");
    }
    
    if (op == 1) {
    
    for (int i=0; i<5; i++){
        
        b[i] = new Times();
        
        System.out.print("Digite o código do Time: ");
        b[i].setCodigo(entrada.nextInt());
    

        System.out.print("Digite o nome do Time: ");
        b[i].setNome(entrada.nextLine());
        
        System.out.print("Digite a data de fundação do Time: ");
        b[i].setdata_fund(entrada.nextLine());
        
        System.out.print("\n\n"); 
    }}
    
    if ( op == 2){
        
        for (int i=0; i<5; i++){
            
            p[i] = new Partidas();
            
            System.out.print("Digite o TimeA:");
            p[i].setTimeA(entrada.nextLine());
            
            System.out.print("Digite o TimeB: ");
            p[i].setTimeB(entrada.nextLine());
        
            System.out.print("Digite o placar do TimeA: ");
            p[i].setPlacar_timeA(Integer.parseInt(entrada.nextLine()));
            
            System.out.print("Digite o placar do TimeB: ");
            p[i].setPlacar_timeB(Integer.parseInt(entrada.nextLine()));
            
            System.out.print("Digite o Publico Presente: ");
            p[i].setpub_presente(Integer.parseInt(entrada.nextLine()));
            
            System.out.print("\n\n"); 
        }}    
        
    }

  }

2 Respostas

LincolnStuart

Após você dar um entrada.nextInt(), você dá uma entrada.nextLine() para capturar o enter que você deu para capturar o número e escapou para o scanner,

O que acontece é que você digita o inteiro você dá um enter, capturando com o nextInt(), ele só consome o inteiro, ficando a quebra de linha lá para ser lido no próximo nextLine()…

Deu para entender?

A

Deu sim, consegui ! Valeu :slight_smile:

Criado 16 de junho de 2016
Ultima resposta 18 de jun. de 2016
Respostas 2
Participantes 2