Autoit 入門書Autoit 問題解決

Autoit|よく使う演算子の種類、使用方法、注意事項

AutoIt の演算子は文字や数学を扱うためによく使うものなので、覚えておきましょう。

今回は、よく使う演算子の種類、使用方法、注意事項を紹介します。

演算子の種類

代入演算子

「=」は、数字または文字列を変数に代入する際に使用します。

また、2つの値を比較する場合にも使用します。

例1:$text = “AutoItは次の代入、数学、比較、論理演算子を持っています。”

例2:$text2 = 20220715

例3:

If $text = $text2 Then
MsgBox(0,0,$text & " と " & $text2 & " は同じ内容です。")
Else
MsgBox(0,0,$text & " と " & $text2 & " は内容が違います。")
EndIf

「=」は、加算、減算、乗算、除算と合わせて使用することができます。

例えば「$text = 3」の場合。

例1:「$text = $text + 5」 これを 「$text += 5」 というように書くことができます。

答えはどちらも「8」になります。

どちらで書いても問題ありませんが、自分の分かりやすい書き方で書くようにしましょう。

自分でも読みにくいプログラムを書くと、修正する場合や後で見直す場合に、自分で作ったプログラムが読めないといったことになりますので、常に読みやすく分かりやすいプログラムを書くことをおすすめします。

加算、減算、乗算、除算

+(足す)ー(引く)*(掛ける)/(割る) は、数字でのみ使用します。

$text = “AutoItは次の代入、数学、比較、論理演算子を持っています。”
$text2 = ” へ~そうなんですか。”

間違い例:MsgBox(0,0,$text + $text2)
正しい例:MsgBox(0,2 ^ 4,$text & $text2)

演算子例
左が間違い例、右が正しい例

加算、減算、乗算、除算で文字列を扱うと、値が「0」になって表示されてしまいますので注意してください。(初心者はよくこの間違いをします)

例えば $text に文字列が代入されている場合、「$text + 3」とすると、答えが「3」になります。

$text に数値が代入されていれば問題ありませんが、注意することは、ダブルクォーテーション「”」や、シングル クォーテーション「’」で囲んだ数値は文字列として扱われるということ。

累乗

累乗とは、同じ数値を指定した回数掛ける演算子です。

例:2 ^ 4 = 16

2 * 2 * 2 * 2 と同じになります。

MsgBox(0, "2 ^ 4", 2 ^ 4)
MsgBox(0, "2 * 2 * 2 * 2", 2 * 2 * 2 * 2)

文字列の連結

2つの文字列を合わせる場合は、「&」を使用します。

「&」は、文字列と数字を扱うことができますが、数値は文字列として扱われます。

$text = 5
$text2 = 5
MsgBox(0,0,$text & $text2)

文字列の連結。数値は文字列として扱われます。
数値を「&」で連結すると文字列として扱われる

文字列の比較

「==」は、2つの文字列を大文字小文字を区別して比較します。

If $text = $text2 Then
MsgBox(0,”例1″,”2つの値は同じです”)
EndIf

If $text == $text2 Then
MsgBox(0,”例2″,$text & ” == ” & $text2)
Else
MsgBox(0,0,$text & ” <> ” & $text2)
EndIf
文字列の比較

例1 では、大文字小文字を区別しない「=」を使用しています。

例2 では、大文字小文字を区別する「==」を使用しています。

結果が違うのが分かりますね。

「<>」は、2つの数値が同じではない(違う値である)ということを比較します。

「<>」は、数値と文字列に使用できます。

文字列で使用した場合、大文字小文字を区別しません。

$text = "Autoit"
$text2 = "autoit"

If $text <> $text2 Then
	MsgBox(0, "例1", "2つの値は同じではありません")
Else
	MsgBox(0, "例1", "2つの値は同じです")
EndIf
文字列の比較2

大文字小文字を区別をしないので、2つの値は同じだと判断します。

「>」は、1番目の値が2番目の値より大きいかを判定します。

$text = 1
$text2 = 3

If $text > $text2 Then
	MsgBox(0, "例1", "$textは$text2より大きいです")
Else
	MsgBox(0, "例1", "$textは$text2より小さい、または同じです")
EndIf

$text = “4” のように文字列に数値を代入した場合も数値として比較されます。

「<」は、1番目の値が2番目の値より小さいかを判定します。

「>=」は、1番目の値が2番目の値以上かを判定します。

$text = "2"
$text2 = 3

If $text >= $text2 Then
	MsgBox(0, "例1", "$textは$text2以上です")
Else
	MsgBox(0, "例1", "$textは$text2以下です")
EndIf

「<=」は、1番目の値が2番目の値以下かを判定します。

論理演算子

「And」複数の条件を指定する場合に使用します。

$text = 2
$text2 = 3

If $text > 1 And $text2 > 1 And $text2 < 4 Then
	MsgBox(0, "例1", "true")
Else
	MsgBox(0, "例1", "false")
EndIf

「And」は、日本語で言うと「かつ」になります。

$text が 1 よりも大きく 「かつ」 $text2 が 1 よりも大きく「かつ」 $text2 が 4 よりも小さいならば “true”

「And」もよく使うので、最初は理解しづらいかもしれませんが、慣れれば非常に役に立つ演算子なので、是非覚えてください。

「Or」は、日本語で言うと「または」になります。

$text = 2
$text2 = 3


If $text > 2 Or $text2 > 2 Then
	MsgBox(0, "例1", "true")
Else
	MsgBox(0, "例1", "false")
EndIf

「Or」は、 条件のどれか1つが成立していれば”true”になります。

プログラムによって使い分けが必要です。

「NOT」は、値の True (真)(1) 、 False (偽)(0) を判断します。

$text = 1

If Not $text Then
	MsgBox(0, "例1", "true")
Else
	MsgBox(0, "例1", "false")
EndIf

結果は”false”になります。

$text = ""

If Not $text Then
	MsgBox(0, "例1", "true")
Else
	MsgBox(0, "例1", "false")
EndIf

結果は”true”になります。

演算子の優先度

演算子には優先度があります。

複数の演算子を1つの式に入れる場合は注意が必要です。

  1.    Not
  2.     ^
  3.     * /
  4.     + –
  5.     &
  6.     < > <= >= = <> ==
  7.     And Or

コメント