Me ajudem plz

4 respostas
H

sou iniciante em java e estou com duvidas em algumas coisas, tp, estava fazendo o meu primeiro programa e o comando para imprimir algo na tela do tp

public int retornaDia()

if (dataValida == true)

return dia

esta dando um erro nesta parte do meu programa,tp,se eu tirar essa condição if nao da erro, pq?como posso fazer com q nao de o erro msm com o if?

4 Respostas

M

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

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:
public int retornaDia()
{
  if (dataValida == true)
    return dia;

  return 0; // isto aqui depende da lógica
}

Boa Sorte,

Luís
H

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

public void varificaData(int dia, int mes, int ano) {

if ((dia >= 1) &&

(dia <= 31) &&

(mes >= 1) &&

(mes <= 12) &&

(ano >= 1))

dataValida = true;

else

dataValida = false;

}

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

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:

if ( validaData( 28, 3, 2015 ) == -1 ) {

   // data invalida...
}
Criado 2 de abril de 2005
Ultima resposta 3 de abr. de 2005
Respostas 4
Participantes 3