(Ajuda) Matrizes e Vetores

4 respostas Resolvido
java
Alekafer

Olá, estou criando um programa em que devem armazenar Jogador: código, nome e posição.
time: código, nome, técnico.

public class Jogador {

int codigo;
String nome;
String posicao;

//Sets e Gets já fiz também só irá ficar muito longo...

public class Time {

int codigoTime;
String nomeTime;
String tecnico;
Jogador jogadores [];

//Sets e Gets...

public class MenuInterativo {
public static void main (String args []) {
    
    Scanner reader = new Scanner(System.in);
    System.out.println ("Bem vindo ao Meu Esporte virtual!");
    System.out.println (" Escolha uma das opções para continuar:");
    System.out.println ("1- Para cadastro de novo jogador.");
    System.out.println ("2- Para cadastro de novo time.");
    System.out.println ("3- Para listar jogadores cadastrados.");
    System.out.println ("4- Para listar nomes de times cadastrados.");
    System.out.println ("5- Para listar dados completos de um time.");
    System.out.println ("6- Para vincular um jogador a um time.");
    System.out.println ("7- Sair.");
    int x = reader.nextInt();
    
    switch (x){
        
        case 1:
            
            int[][] matriz = new int[20][3];
            
            System.out.println("Digite a quantidade de jogadores a cadastrar: ");
         int a = reader.nextInt();   
         Jogador jogadores[] = new Jogador [a];
         System.out.println ("Digite os dados do jogador: ");
	for (int i = 0; i < jogadores.length; i++)
	{
                jogadores[i] = new Jogador ();
		
		System.out.println ("Jogador " +(i+1));
                    matriz[0][0] = reader.nextInt();
                    
                    jogadores[i].setNome ("Digite o nome do jogador: ");
                    matriz[0][1] = reader.next();
                    
                    jogadores[i].setPosicao ("Digite sua posição: ");
                    matriz[0][2] = reader.next();
                    
                    
                   
                    }
            break;

...

Tipo assim, ali eu declarei que toda entrada irá para a posição [0] [0], [0][1],[0][2], mas eu quero que o proximo jogador vá para a segunda linha… tipo [1] [0], [1][1],[1][2]. Como faço?

4 Respostas

Jelson1
Solucao aceita

E assim não resolve?!

matriz[i][0] = reader.nextInt();
                    
jogadores[i].setNome ("Digite o nome do jogador: ");
matriz[i][1] = reader.next();
                    
jogadores[i].setPosicao ("Digite sua posição: ");
matriz[i][2] = reader.next();
Alekafer

Isso, obrigada. Tem outra coisa, após digitar os dados o programa finaliza… Como faço para que ele retorne ao menu que fiz?

Jelson1

Cria um loop, faça algo assim:

Scanner reader = new Scanner(System.in);

while(true){
       System.out.println ("Bem vindo ao Meu Esporte virtual!");
       System.out.println (" Escolha uma das opções para continuar:");
       System.out.println ("1- Para cadastro de novo jogador.");
       System.out.println ("2- Para cadastro de novo time.");
       System.out.println ("3- Para listar jogadores cadastrados.");
       System.out.println ("4- Para listar nomes de times cadastrados.");
       System.out.println ("5- Para listar dados completos de um time.");
       System.out.println ("6- Para vincular um jogador a um time.");
       System.out.println ("7- Sair.");
       int x = reader.nextInt();

       switch (x){
            [...]
           case 7:
           default:
               reader.close();
               System.exist(0);
}

Mas cuidado! Você tem que definir uma condição para finalizar! Nesse caso, quando o usuário digitar 7 ou um número que não está presente no menu (default), ele finaliza.

Alekafer

Sim meu código já tinha finalização só não postei pra não prolongar. Muito obrigada.

Criado 18 de março de 2020
Ultima resposta 18 de mar. de 2020
Respostas 4
Participantes 2