na verdade o return é pra retornar algo em um variavel e senão me engano num se pode ter inumeros retornos.
a msg está dizendo que seu retorno foi perdido
pq não imprime ?
Se você quiser que o método não retorne nada,
e deseja apenas executar uma sequencia de instruções, como o System.out.println(String str),
então especifique que o tipo de retorno é void.
[quote=EAugusto]Se você quiser que o método não retorne nada,
e deseja apenas executar uma sequencia de instruções, como o System.out.println(String str),
então especifique que o tipo de retorno é void. [/quote]
Augusto, mas não quero usar o Sytem.out… quero usar apenas return.
Podem ocorrer situações em que entra em nenhum if e assim o método não tem retorno.
Para simplificar podes fazer
if (idade<=12)
return "Infantil";
if (idade>13&&idade<16&&peso<40) //não precisa do else uma vez que se entrar no if anterior fará return e já não chegará a este if
return "Juvenil Leve";
if (idade>13&&idade<16&&peso>40) //mesma coisa
return "Juvenil Pesado";
....
return "Veterano";
Já agora, uma pessoa de 13 anos não tem categoria? Ou uma pessoa de 14 ou 15 anos com exactamente 40Kg?
Quando se retorna o método dependendo de algumas condições (IF’s) o compilador só permitirá
que o programa rode se todas as possibilidades forem verificadas.
Como você fez muitas condições aninhadas, provavelmente não cumpriu todas as possibilidades.
Qualquer coisa retorne uma mensagem padrão se nenhuma as alternativas foram supridas.
[quote=EAugusto]Quando se retorna o método dependendo de algumas condições (IF’s) o compilador só permitirá
que o programa rode se todas as possibilidades forem verificadas.
Como você fez muitas condições aninhadas, provavelmente não cumpriu todas as possibilidades.
Qualquer coisa retorne uma mensagem padrão se nenhuma as alternativas foram supridas.[/quote]
Como assim Augusto? Devo de colocar uma condicao final?
Observações:
a) Escreva um método que recebe, via parâmetros, a idade e o peso de um atleta
Você criou um construtor que recebe parâmetros, não um método que recebe parâmetros.
b) O exercício diz que tem que ser retornado a categoria, entãoo tipo de retorno não pode ser void. (Devido conversas anteriores)
c) VocÊ tem deixado algumas condições para trás como por exemplo
if (idade<=12)
return "Infantil";
if (idade>13&&idade<16&&peso<40) //não precisa do else uma vez que se entrar no if anterior fará return e já não chegará a este if
return "Juvenil Leve";
if (idade>13&&idade<16&&peso>40)
Quando que a idade de 13 anos será avaliada?
Você verificar até 12 e maior que 13!!!
[quote=EAugusto]Observações:
a) Escreva um método que recebe, via parâmetros, a idade e o peso de um atleta
Você criou um construtor que recebe parâmetros, não um método que recebe parâmetros.
b) O exercício diz que tem que ser retornado a categoria, entãoo tipo de retorno não pode ser void. (Devido conversas anteriores)
c) VocÊ tem deixado algumas condições para trás como por exemplo
if (idade<=12)
return "Infantil";
if (idade>13&&idade<16&&peso<40) //não precisa do else uma vez que se entrar no if anterior fará return e já não chegará a este if
return "Juvenil Leve";
if (idade>13&&idade<16&&peso>40)
Quando que a idade de 13 anos será avaliada?
Você verificar até 12 e maior que 13!!!
Boa sorte[/quote]
Beleza! Vou dar uma verificada no code aqui e retorno mais tarde com algum resultado!
A verdade é que o método tem retornar uma String
e o compilador não confia nos if’s. Vai que os if’s não
correspondem a alguma condição. Então deve-se colocar
um retorno que não entra em if nenhum.
Por exemplo:
Após todos os if’s colocar um return ou
no último if colocar um else sem condição.