How to save information to an array?

Asked

Viewed 627 times

0

Java masters, I am learning about matrices, vectors and I would like to know what happens to my code, because I create a matrix to receive six names and six positions for the employees matrix. Only when printing, I only printed the positions and it is not printing the names. It follows below the code:

   public static void main(String[] args) {

    //Criando o Array vetor do tipo String com seis posições
        String funcionarios[][] = new String[6][1];
        //Populando o array vetor                
        for(int nome = 0; nome <= 5; nome++)
        {
            String entrada = JOptionPane.showInputDialog(null, "Digite o Nome do Funcionário: ");
            for(int cargo = 0; cargo <= 0; cargo++)
            {
            entrada = JOptionPane.showInputDialog(null, "Digite o Cargo do Funcionário: ");

                funcionarios[nome][cargo] = entrada;                
            }                
        }
        for(int nome = 0; nome <= 5; nome++)
        //Imprimindo o conteúdo do array vetor
        {
            //JOptionPane.showMessageDialog(null, "Nome do Funcionario " + funcionarios[nome][cargo]); 
            for(int cargo = 0; cargo <= 0; cargo++)
            {

               JOptionPane.showMessageDialog(null, "Cargo do Funcionario " + funcionarios[nome][cargo]); 

            }
        } 
    //Encerrando o sistema
    System.exit(0);

Anyone who can help me, I thank you beforehand.

1 answer

2


 //Criando o Array vetor do tipo String com seis posições
 String funcionarios[][] = new String[5][1];

You should now create a matrix with 5 rows and two columns (name and position) and not a matrix with 6 rows and 1 column.

Exemplifying your matrix with 1 column can be seen like this:
inserir a descrição da imagem aqui

Since to save the name and position should be like this (2 columns):
inserir a descrição da imagem aqui

 //Populando o array vetor                
 for (int nome = 0; nome <= 5; nome++) {
  String entrada = JOptionPane.showInputDialog(null, "Digite o Nome do Funcionário: ");
  for (int cargo = 0; cargo <= 0; cargo++) {
   entrada = JOptionPane.showInputDialog(null, "Digite o Cargo do Funcionário: ");

   funcionarios[nome][cargo] = entrada;
  }
 }

In the excerpt above, I do not recommend using variables of the whole type with the names you used as: cargo and nome, because it gets confusing!

for (int nome = 0; nome <= 5; nome++) {

You also do not need to set the size of the matrix in the loop, you can use the property: length (that returns the size).

for (int cargo = 0; cargo <= 0; cargo++) {

The post loop is also useless because it runs only once you can use the position directly.

You’re not saving his name because you didn’t save him.

You get the entrance:

String entrada = JOptionPane.showInputDialog(null, "Digite o Nome do Funcionário: ");

But then overwrite her inside the for:

entrada = JOptionPane.showInputDialog(null, "Digite o Cargo do Funcionário: ");

And save the job at 0:

funcionarios[nome][cargo] = entrada;

Follow below how your code will stick with these fixes:

String funcionarios[][] = new String[5][2];

for (int i = 0; i < funcionarios.length; i++) {

    String nome = JOptionPane.showInputDialog(null, "Digite o Nome do Funcionário: ");
    funcionarios[i][0] = nome; // salvando o nome na posição 0

    String cargo = JOptionPane.showInputDialog(null, "Digite o Cargo do Funcionário: ");
    funcionarios[i][1] = cargo; // salvando o cargo na posição 1
}

// Mostrando os valores
for (int i = 0; i < funcionarios.length; i++) {
    JOptionPane.showMessageDialog(null, "Nome do Funcionario " + funcionarios[i][0]);
    JOptionPane.showMessageDialog(null, "Cargo do Funcionario " + funcionarios[i][1]);
}
  • 1

    I would like to thank you very much, for the didactic explanation, helped me a lot, very grateful even for the help.

  • Dispose friend! If the answer managed to help you, accept it as a response just click on the visa below the polling arrows.

Browser other questions tagged

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