Часто необходимо изменить естественный порядок выполнения скрипта в зависимости от условия или серии условий. Больше ли это число другого? Или, есть ли в этой строке буква 'ы'?
Условия рассматриваются, как True (Истина, не ноль, не пустая строка) и False (Ложь, ноль, пустая строка). Условия обычно используют операторы сравнения, такие как ==, <>, >=.
Следующие условные операторы доступны в AutoIt:
Все три оператора похожи и предназначены для выполнения разного кода в зависимости от данного условия (или условий). Пример, использующий If и Message Box:
$var = -20
If $var > 0 Then
MsgBox(0, "Пример", "$var положительное!")
ElseIf $var < 0 Then
MsgBox(0, "Пример", "$var отрицательное!")
Else
MsgBox(0, "Пример", "$var равно нулю.")
EndIf
В примере выше, выражение $var > 0 вычисляется, как False, поскольку переменная меньше нуля. Поскольку первое условие не выполняется, проверяется следующее условие. Выражение $var < 0, вычисляется, как True. Это означает, что оператор If выполнит второй MsgBox, который покажет, что $var отрицательное!.
Оператор Select очень похож, но обычно используется в ситуации, когда необходимо проверить множество условий.
Этот оператор обычно легче читать, чем длинный блок с If...ElseIf. Например:
$var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "Пример", "$var больше 1")
Case $var > 10 AND $var <= 20
MsgBox(0, "Пример", "$var больше 10")
Case $var > 20 AND $var <= 30
MsgBox(0, "Пример", "$var больше 20")
Case $var > 30 AND $var <= 40
MsgBox(0, "Пример", "$var больше 30")
Case $var > 40
MsgBox(0, "Пример", "$var больше 40")
EndSelect
Оператор Switch очень похож на Select, но обычно используется, когда одно и тоже выражение сравнивается с различными значениями.
$var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "Пример", "$var больше 1")
Case 11 To 20
MsgBox(0, "Пример", "$var больше 10")
Case 21 To 30
MsgBox(0, "Пример", "$var больше 20")
Case 31 To 40
MsgBox(0, "Пример", "$var больше 30")
Case Else
MsgBox(0, "Пример", "$var больше 40 или меньше 0 или равно 0")
EndSwitch
Для любого из этих операторов будет выполнена первая группа операторов, следующая после истинного условия. Все остальные условия и операторы будут проигнорированы.