Ajuda Metodo

4 respostas
anunes

public String verificacaoEspecialidade(boolean x, Integer esp){ if (x == true){ if (esp == 1){ return "Cardiologia"; }else if (esp == 2){ return "Dermatologia"; }else if (esp == 3){ return "Neurologia"; } }else{ return "Especialidade não encontrada"; } }

consta como ‘missing return statement’
o que isso quer dizer?

4 Respostas

drsmachado
public String verificacaoEspecialidade(boolean x, Integer esp){   
        if (x == true){   
            if (esp == 1){   
                return "Cardiologia";   
            }else if (esp == 2){   
                return "Dermatologia";   
            }else if (esp == 3){   
                return "Neurologia";   
            }   
			/*
				Significa que aqui não existe um return "", caso x == true && esp != 1 && esp !=2 && esp != 3.
				Se esp só pode ser 1, 2 ou 3, o último else deve ser apenas else e não else if(qualquerCoisa)
			*/
        }else{   
            return "Especialidade não encontrada";   
        }   
}
anunes

public String verificacaoEspecialidade(boolean x, Integer esp){ if ( x == true && esp == 1 && esp !=2 && esp != 3 ){ return "Cardiologia"; }else if ( x == true && esp != 1 && esp == 2 && esp != 3 ){ return "Dermatologia"; }else if ( x == true && esp != 1 && esp != 2 && esp == 3 ){ return "Neurologia"; }else{ return "Especialidade não encontrada"; } } }
obrigado, ficou assim :slight_smile:

drsmachado

Não, não.
Você poderia manter o mesmo, apenas retirando o último else if

public String verificacaoEspecialidade(boolean x, Integer esp){     
        if (x == true){     
            if (esp == 1){     
                return "Cardiologia";     
            }else if (esp == 2){     
                return "Dermatologia";     
            }else /*if (esp == 3)*/{//Este else if só tem sentido caso esp possa receber valores diferentes de 1, 2 ou 3
				//caso contrário, como esp só pode ser 1, 2 ou 3, você só precisa de um else
                return "Neurologia";     
            }     
            /*  
                Significa que aqui não existe um return "", caso x == true && esp != 1 && esp !=2 && esp != 3.  
                Se esp só pode ser 1, 2 ou 3, o último else deve ser apenas else e não else if(qualquerCoisa)  
            */   
        }else{     
            return "Especialidade não encontrada";     
        }     
}
rmendes08

Dica: comparações do tipo

if( x == true )

são redundantes, se x é do tipo booleano então

if( x )

já é suficiente. Além do mais, uma variável com o nome x não quer dizer nada. Dê um nome significativo para suas variáveis.

Criado 10 de outubro de 2011
Ultima resposta 11 de out. de 2011
Respostas 4
Participantes 3