Fiz o teste o retorno não ocorre sem um ELSE
Fiz o teste o retorno não ocorre sem um ELSE
Oi, Juliana!! Tudo bem?
Peço desculpas pela demora em retornar.
Dependendo do contexto, a ausência do ELSE
pode impedir que um valor seja retornado pela função. Para compreender isso, iremos tomar como base a função salario_ok
, a qual construímos ao longo dos vídeos.
Dado que o retorno dessa função depende da estrutura condicional que compara o salário dos instrutores, caso o ELSE
seja retirado, apenas a condição presente no IF
será levada em consideração:
IF instrutor.salario > 200 THEN
RETURN 'Salário ok!';
END IF;
No entanto, nem todos os instrutores recebem um valor acima de R$200,00 — logo, nesses casos a condição não será cumprida e, como consequência, não existirá um retorno para tal cenário, gerando um problema ao executar a função.
Por esse motivo, faz-se necessário a presença do ELSE
. Com ele, afirmamos que, se a primeira condição não for atendida, deve-se retornar a mensagem "Salário deve aumentar":
IF instrutor.salario > 200 THEN
RETURN 'Salário ok!';
ELSE
RETURN 'Salário pode aumentar';
END IF;
Dessa forma, independente do salário do instrutor, será possível rodar a função com sucesso, já que prevemos todos os casos possíveis (e estes contém um retorno).
Quando estamos utilizando um bloco condicional em uma função, precisamos nos atentar sobre o seu contexto geral. Caso o valor a ser retornado dependa dele, precisamos analisar os casos possíveis e utilizar comandos como IF
, ELSEIF
e ELSE
, sempre garantindo que tudo esteja sob o nosso controle e seja executado corretamente.
Espero ter ajudado, Ju. Se tiver alguma dúvida depois da minha explicação ou em outro momento dos seus estudos, pode contar comigo!
Abraços.