Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício 6 de ARRAY

Ao buscar "Funci_2" o método contém retorna false:

Método com problema (classe Empresa):

boolean contem(String uNome) { boolean ret = false; for (int i = 0; i < this.livre; i++) { if (uNome == this.empregados[i].nome) { ret = true; System.out.println(ret); } if(ret) break; } return ret; }

Código completo:

public class TestaEmpresa{ public static void main(String[] args){ aula4_exercicio3(); //exercicio3();

} private static void aula4_exercicio3(){ Empresa empresa = new Empresa(); empresa.empregados = new Funcionario[10];

for (int i = 0; i <= 5; i++) { double salVar =1000 + i * 100; Data dtEntr = new Data(25, 12, 2013); Funcionario f = new Funcionario("Funci_" + i, "Dep_X", salVar, dtEntr, "100" + i); empresa.adiciona(f); } empresa.mostraEmpregados(); String uNome = "Funci_2"; System.out.println("O funcionário " + uNome + " existe? " + empresa.contem(uNome)); uNome = "Funci_8"; System.out.println("O funcionário " + uNome + " existe? " + empresa.contem(uNome)); }

}

2 respostas

Marisio,

Mais à frente no curso você vai ver que ao comparar strings é melhor utilizar o método equals. Mas se não me engano, o exercício pedia para verificar se o funcionário existia passando o objeto funcionário e não o seu nome. Desta forma, tente fazer assim:

boolean contem(Funcionario func){
      for (int Cont =0; Cont < this.Funcionarios.lenght; Cont++) {
         if (this.Funcionarios[Cont] == func) return True;
      }
   }
solução!

Muito Obrigado! Fiz o exercício como pedido! Apenas tentei uma coisa diferente!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software