Olá pessoal. Fiz um método bem bestinha aqui só pra explicar o meu problema. Aqui no eclipse nesse código abaixo diz que o método “numero” deve retornar um resultado inteiro, mas eu estou sempre retornando um inteiro ali nos cases dentro do switch. Então qual é o problema nesse método? Não dá pra usar return dentro do switch? Espero que me ajudem.
public int numero (int d){
switch (d){
case 1:
return d+1;
case 2:
return d+2;
}
}
Simplesmente porque o “return null” será acionado quando nenhum condição “case” se torne satisfeita. Ou então porque o compilador não é suficientemente inteligente para captar isso de sua aplicação.
[quote=darkmen]Olá pessoal. Fiz um método bem bestinha aqui só pra explicar o meu problema. Aqui no eclipse nesse código abaixo diz que o método “numero” deve retornar um resultado inteiro, mas eu estou sempre retornando um inteiro ali nos cases dentro do switch. Então qual é o problema nesse método? Não dá pra usar return dentro do switch? Espero que me ajudem.
[code]
public int numero (int d){
switch (d){
case 1:
return d+1;
case 2:
return d+2;
}
}
[/code][/quote]
O switch é uma forma evoluida do if-else
cada case é um if, mas o else ?
O switch precisa de um default que significa "se não for nenhuma das opções que eu escolhi, então … "
É considerado um erro vc não usar o default, embora o compilador aceite. Por isso que ele dá o warning. A configuração do seu eclipse está feita para que quando o compilador dê esse warning o eclipse entenda como erro e pare de compilar. Vá em opções / Java compiler se quiser remover esse warning ( mas é claro que vc não deve fazer isto).
Sempre coloque o default. Por isso obriga vca pensar “e se não for nenhum destas opções ?” Por exemplo, no seu caso de exemplo, não está definido o que acontece se d for outro numero que não 1 e 2 e ha muitos numeros diferentes de 1 e 2 logo, o seu código vai quebrar.
[quote=sergiotaborda][quote=darkmen]Olá pessoal. Fiz um método bem bestinha aqui só pra explicar o meu problema. Aqui no eclipse nesse código abaixo diz que o método “numero” deve retornar um resultado inteiro, mas eu estou sempre retornando um inteiro ali nos cases dentro do switch. Então qual é o problema nesse método? Não dá pra usar return dentro do switch? Espero que me ajudem.
[code]
public int numero (int d){
switch (d){
case 1:
return d+1;
case 2:
return d+2;
}
}
[/code][/quote]
O switch é uma forma evoluida do if-else
cada case é um if, mas o else ?
O switch precisa de um default que significa "se não for nenhuma das opções que eu escolhi, então … "
É considerado um erro vc não usar o default, embora o compilador aceite. Por isso que ele dá o warning. A configuração do seu eclipse está feita para que quando o compilador dê esse warning o eclipse entenda como erro e pare de compilar. Vá em opções / Java compiler se quiser remover esse warning ( mas é claro que vc não deve fazer isto).
Sempre coloque o default. Por isso obriga vca pensar “e se não for nenhum destas opções ?” Por exemplo, no seu caso de exemplo, não está definido o que acontece se d for outro numero que não 1 e 2 e ha muitos numeros diferentes de 1 e 2 logo, o seu código vai quebrar.[/quote]
Valeu cara pela explicação. Era isso mesmo, agora o erro sumiu. Pensei que o default era opcional e se não fosse nenhum dos cases ele retornaria null.