[RESOLVIDO]Dúvida Métodos saiFuncionarioNoDepto e entraFuncionarioNoDepto

4 respostas
C

Boa noite Pessoal,

Estou na dúvida quanto a estes dois métodos... Alguém teria alguma outra sugestão para elaborar estes dois métodos?

Minha dúvida é se está correto esta linha de raciocinio.

//chamado quando um funcionário do departamento é demitido ou transferido para outro departamento
	public void saiFuncionarioDepto(boolean situacao){  
		situacao = true;  
		if(situacao == true){  
			System.out.println("Funcionario demitido" + situacao);  
		}  
		else{  
			System.out.println("Funcionario transferido" + situacao); 
			quantFuncDepartamento--;
		}  
	}  
	
	//chamado sempre que um novo funcionário é alocado no departamento
	public void entraFuncionarioDepto(boolean situacao){
		situacao = true;
		if(situacao == true)
			System.out.println("Novo funcionário alocado" + situacao);
		quantFuncDepartamento++;
	}

4 Respostas

romarcio

Tem uma coisa que é a seguinte.
Você passa por parâmetro a situação, que deverá vir true ou false.
Porém logo em seguida você seta essa situação como true, então mesmo que venha false, sempre será true.
Tira esse situacao = true; senão sempre será true e irá cair no IF e nunca no ELSE.

Parece ser um problema escolar, pq é a segunda pessoa que vejo postar algo sobre esse assunto hj, hehehe…
Dá uma olhada aqui: http://www.guj.com.br/java/240536-urgente/2#1242142
Talvez te ajude a resolver o problema.

C

Desculpa,

Mas não consegui perceber meu erro. Poderiam me dar um exemplo prático?

romarcio

Vc tem esse método:

public void saiFuncionarioDepto(boolean situacao){ situacao = true; if(situacao == true){ System.out.println("Funcionario demitido" + situacao); } else{ System.out.println("Funcionario transferido" + situacao); quantFuncDepartamento--; } }

Você está passando um parametro (boolean situacao).
Esse parametro vai chegar valendo true ou false, digamos que seja false.
Quando vc entrar no método, a primeira linha dentro do método está setando
situacao como true, então chega false e recebe true, quer dizer que sempre será true.
Você não deve usar a linha “situacao = true;”.
Deixe assim:

public void saiFuncionarioDepto(boolean situacao){ if(situacao == true){ System.out.println("Funcionario demitido" + situacao); } else{ System.out.println("Funcionario transferido" + situacao); quantFuncDepartamento--; } }

No método seguinte aconteceu a mesma coisa:

public void entraFuncionarioDepto(boolean situacao){ situacao = true; if(situacao == true) System.out.println("Novo funcionário alocado" + situacao); quantFuncDepartamento++; }

E ainda sempre, sendo true ou false, a variavel quantFuncDepartamento vai ser incrementada.
Então deixe assim:

public void entraFuncionarioDepto(boolean situacao){ if(situacao == true) { System.out.println("Novo funcionário alocado" + situacao); quantFuncDepartamento++; } }

Assim, se o parametro vier false, não incrementa e nem mostra a mensagem.

C

Valeu, agora entendi…

Criado 3 de maio de 2011
Ultima resposta 4 de mai. de 2011
Respostas 4
Participantes 2