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

Duas dúvidas.

Bom, eu fiz o cógido nessa formatação, e o programa não compilou, depois eu mudei para como estava no gabarito e funcionou. Segue o meu código:

 boolean contem(Funcionario f) {
            for (int i = 0; i < this.livre; i++) {
                if (f == this.empregados[i]) {
                    return true;
                }else{
                   return false;
       }
        }
            }

Código do gabarito:

    boolean contem(Funcionario f)  {

 for (int i = 0; i < this.livre; i++) {

                if (f == this.empregados[i]) {
                    return true;
                }
            }
            return false;
        }

Gostaria de saber o porque disso.

Também tenho a segunda dúvida. Quando eu coloco o método contem uma variavel que não existe ele dá erro o programa não compila. Não era pra aparecer o False?

3 respostas

O seu exemplo tem os returns dentro do for.. a compilação não passa, pq pode ser que nem entre no seu for... E aí qual seria o retorno?

Acho que não entendi a segunda dúvida.. mas de todo jeito vc só pode usar variáveis que estão declaradas no programa.

solução!

Matheus, no seu código, se o funcionário passado por parâmetro não for o primeiro, seu código já retorna false. o funcionário que você está procurando deve não ser o primeiro da array. Seu método pode até funcionar, mas o f buscado teria que ser o primeiro da array "empregados".

Enquanto no método do gabarito, ele percorre toda a array e só retorna false depois de não conseguir encontrar o funcionário e retornar true.

Quanto à segunda dúvida, se você "coloca" (declara) um atributo que não existe, ele passa a existir, pois você o está declarando... hehe. Por padrão, o atributo que você declarar dentro do método contem(Funcionario f) só será "false" se ele for do tipo boolean.

Se ainda tiver dúvidas, posta aí.

Abraço

Entendi a primeira dúvida Gente, só que a segunda acontece isso:

Eu uso uma variável que não foi declarada e da Erro, era pra isso acontecer mesmo?

Ex:

contem(luciano);

E essa variável luciano não foi declarada no meu programa e ele não compila, só que a partir do momento que eu declaro ela e não coloco ela no array o programa compila e retorna false. Era pra isso acontecer mesmo ou era pra aceitar até variáveis não declaradas?

Obrigado pela ajuda gente!