ある条件 あるいは複数の条件に基づいてスクリプトの処理の流れを変えたいと思うことがあるでしょう。 ある数が他のある数より大きい、または文字列に特定の値がはいっているか?
条件はtrue(非0)かfalse(0)として評価されます。 条件には一般に==, <>, >=といった オペレータが使用されます。
AutoItでは次の条件文が使用できます。
どの命令も同等で、与えられた条件に基づいて実行するコードを決定します。 変数の値に応じてメッセージ ボックスを表示する If文の例です。
$var = -20
If $var > 0 Then
MsgBox(0, "Example", "$var was positive!")
ElseIf $var < 0 Then
MsgBox(0, "Example", "$var was negative!")
Else
MsgBox(0, "Example", "$var was zero.")
EndIf
上の例では$var > 10という条件はfalseと評価されます。変数が0より小さいからです。 1つ目の条件が当てはまらない場合、2つ目の条件がテストされます。$var < 0という式はtrueと評価されます。従ってIf文で2番目のMsgBox行が実行され"$var was negative!"と表示されます。.
Select文も同様ですが、一般に多くの条件をテストしたいときに 使用されます。普通、大きなIf/ElseIfタイプの文よりも読みやすいからです。 例えば次のように書きます。
$var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "Example",
"$var was greater than 1")
Case $var > 10 AND $var <= 20
MsgBox(0, "Example",
"$var was greater than 10")
Case $var > 20 AND $var <= 30
MsgBox(0, "Example",
"$var was greater than 20")
Case $var > 30 AND $var <= 40
MsgBox(0, "Example",
"$var was greater than 30")
Case $var > 40
MsgBox(0, "Example",
"$var was greater than 40")
EndSelect
Switch文はSelect文にとてもよく似ていますが、 一般に同じ式に対していろいろな条件をテストしたいときに使用します。
$var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "Example",
"$var was greater than 1")
Case 11 To 20
MsgBox(0, "Example",
"$var was greater than 10")
Case 21 To 30
MsgBox(0, "Example",
"$var was greater than 20")
Case 31 To 40
MsgBox(0, "Example",
"$var was greater than 30")
Case Else
MsgBox(0, "Example",
"$var was greater than 40 or less or equal to 0")
EndSwitch
これらの構文では最初にtureとなる条件がどの命令文を実行するかを決定します。それ以降の条件とそれに関連した命令文は無視されます。