1
resposta

IF THEN ELSE

Temos uma variável chamada v_Idade, que representa a idade de uma pessoa. Estamos fazendo um sistema de controle de acesso a uma casa noturna, onde as regras são as seguintes:

Pessoas menores de 14 anos não entram na casa noturna Pessoas menores de 16 anos entrão somente com a presença dos pais Pessoas com 18 anos ou mais estão liberados a frequentar a casa noturna Como deve ser o código de PL/SQL, que escreve em outra variável chamada v_Saida, um texto que diga o deve ser feito, para cada caso, conforme a idade da pessoa.

IF v_Idade < 16 THEN
    v_Saida := 'Não pode entrar.';
ELSIF v_Idade < 18 THEN
    v_Saida := 'Pode entrar, mas somente com a presença dos pais.';
ELSE 
    v_Saida := 'Entrada liberada.';
END IF;

Porque está correto este código visto que "Pessoas menores de 16 anos entrão somente com a presença dos pais ", quando no código mostra com 18 anos ?

1 resposta

Oi Iury, tudo bem?

Vamos analisar o código:

IF v_Idade < 16 THEN
    v_Saida := 'Não pode entrar.';

Nesse primeiro trecho se ele tiver menos de 16 anos, ele não pode entrar na casa noturna.

ELSIF v_Idade < 18 THEN
    v_Saida := 'Pode entrar, mas somente com a presença dos pais.';

Porém, se ele tiver mais de 16 anos e menos de 18 anos, ele só entra acompanhado dos pais.

ELSE 
    v_Saida := 'Entrada liberada.';
END IF;

Caso tenha idade igual ou maior de 18 anos, a entrada está liberada.

Ficou mais claro? Espero ter ajudado.