Ключевое слово If...ElseIf...Else...EndIf

 ↑  ←  Описание ключевого слова


If...ElseIf...Else...EndIf

Выполняет соответствующий блок при истинности выражения в условии.

If <expression_1> Then
    <statements_1>
[ElseIf <expression_n> Then
    <statements_n>]
[Else
    <else_statements>]
EndIf

Параметры

expression Выражение, которое при вычислении может принять значение True или False
statements Многострочный блок операторов, который выполняется, если связанное с ним выражение <expression> равно True

Примечания

Алгоритм конструкции следующий: последовательно вычисляются выражения <expression> до тех пор, пока не встретится выражение равное True. Как только это произошло, выполняется принадлежащий ему блок операторов. Иначе выполняется блок операторов принадлежащий Else, если он существует. Выполняется только один блок операторов и выход из конструкции, оставшиеся выражения <expression> уже не вычисляются.

Операторы If могут быть вложенными.
Выражение <expression_1> может содержать как булевы операторы And, Or, и Not, так и логические операторы <, <=, >, >=, =, ==, и <> (порядок вычисления можно изменить с помощью скобок, если это необходимо).

См. также

If...Then, Select...Case...EndSelect, Switch...EndSwitch

Пример

; Одно условие:
If $CmdLine[0] = 1 Then
    Exit
EndIf

; Вложенное условие
If $CmdLine[0] = 1 Then
    If $var > 1 Then
        $var = 1
    Else
        $var = 0
    EndIf
EndIf

; При использовании Or первое выражение проверяется первым, последующие могут игнорироваться при истине (True) в первом
If MsgBox(1, 'Предложение 1', 'Завершить?') = 1 Or MsgBox(4, 'Предложение 2', 'А может всё-таки завершить?') = 6 Then
    MsgBox(4096, 'Результат', 'Согласны завершить')
    Exit
Else
    MsgBox(4096, 'Результат', 'Согласны продолжить')
EndIf

; Использование ElseIf и вложенного условия
$var = "Привет"
If $var > 0 Then
    MsgBox(4096, "", "Значение положительно.")
ElseIf $var < 0 Then
    MsgBox(4096, "", "Значение отрицательно.")
Else
    If StringIsXDigit($var) Then
        MsgBox(4096, "", "Значение является шестнадцатеричной строкой!")
    Else
        MsgBox(4096, "", "Значение является строкой.")
    EndIf
EndIf