1
resposta

Não retorna sem o else

Fiz o teste o retorno não ocorre sem um ELSE

1 resposta

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.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.