Иллюстрированный самоучитель по PostgreSQL

Условная логика

Теги <else>, <elseif> и <elseifnot>

Теги <else>, <elseif> и <elseifnot> помогают организовать проверку более сложных логических условий по сравнению с отдельными командами <if> и <ifnot>.

Тег <else> открывает блок, который воспроизводится лишь в том случае, если предыдущее условие (при вложении логических тегов – находящееся на том же уровне) было ложным. Если последнее логическое условие было истинным, блок <else> не обрабатывается.

В листинге 13.17 простое условие <if> проверяет переменную с именем answer. Если переменная не существует, то блок, заключенный между тегами <else> и </else>, обрабатывается; в противном случае – не обрабатывается.

Листинг 13.17. Использование тега <else>.

<lхр>
<ifanswer>
Thank you for supplying an answer.
</if>
<else>
You nave not yet supplied an answer.<br/>
<include src="forms/question.lxp" />
</else>
</lxp>

Как упоминалось выше, теги <elseif> и <elseifnot> всего лишь сокращают объем записи. Они работают точно так же, как теги <if > и <ifnot>, вложенные в блок <else>. Например, следующие два блока функционально идентичны:

<if conditionl="true">
Condition 1 is True. </if> <eise>
<if condition2="true"> Condition 2 is tnue.
</if>
</else>
…
<if conditioni="true">
Condition 1 is True.
</if>
<elseif condition2="true">
Condition 2 is true.
</elseif>

Теги <else> повышают эффективность и упрощают дальнейшее сопровождение условных конструкции. При использовании тега <else> LXP автоматически следит за выполнением предыдущего условия, и вам не приходится проверять его заново в инвертированном виде.

В листинге 13.18 реализована та же логика, что в приведенном выше листинге 13.15, но объем кода сокращен за счет применения тега <else>.

Листинг 13.18. Последовательная проверка с использованием тега <else>.

<lхр>
<if answer> <strong>You have supplied an answer!</strong><br />
<if answer="12"> Your answer is correct!<br />
<if cheatcode>
You appear to be cheating, however.
</if>
<else>
Congratulations for not cneating!
</eise>
</if>
<else>
Your answer of <putvar name="answer"> .though, is incorrect.<br />
</else>
</if>
<else>
You have not yet supplied an answer.<br />
<include src="forms/question.Ixp" />
</else>
</lxp>
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.