bem-vindo ao Portal Java Hummer, é o seguinte, pense: se a “dataValida” não for true, oq teu método vai retornar?? Hummm??? Nada, logo, ele nao vai compilar, pq tu nao ta retornando nada se ele for falso… ele só vai retornar algo se for true, e retorna-rá “dia”, mas e se for falso? oq ele deve retornar? entendeu? se tu nao retornar nada na condição falsa, ele nao vai compilar mesmo…
L
luis_fibPJ
Olá, seja bem-vindo ao PJ.
public int retornaDia()
if (dataValida == true)
return dia
Você poderia explicar um pouco mais a sua dúvida, pois o código acima está muito subjetivo.
Porém, vou considerar a sua última linha: quando você remove o if ele "funciona" porque o return torna-se independente. Todo método não void deve retornar um valor correspondente ao tipo assinado no método, assim quando você coloca o if ele (o return) somente será executado se a condição for verdadeira, portanto, acho que seu código deveria ser algo como:
publicintretornaDia()
{
if(dataValida==true)returndia;return0; // isto aqui depende da lógica
}
BoaSorte,
Luís
H
HummerPJ
mas e seu eu kiser no final a condição else ao inves de rotornar um numero int como o 0 retornar um string, dizendo que a data nao é valida?
o verificaData é isto
quando tento executar essa instrução no main, (o nome do meu objeto eh caderno) esta dando um erro, estou executando assi":
caderno.verificaData();
porque esta dando o erro?estou começando java,por favor me ajudem…
M
matheusPJ
Não pode. Tu ta dizendo na assinatura do teu método q ele retorna um int, logo, ele só pode retornar int (ou com cast pra int), tu pode retornar -1 pra informar q é invalido, por ex: