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...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