Special Lesson 1 - 論理演算子

論理演算子とは,条件式(A>B,A=B など)に付けて用いる演算子(計算等を行う記号)です。
なお,論理演算子は大文字小文字を区別しません。

(1)And 演算子

これは,And の前後の2つの条件式が両方とも成り立っていることを表します。

#prompt
Dim MyName As String, MyAge As Long
Input "あなたの名前は>",MyName
Input "あなたの年齢は>",MyAge
If MyName="Sinryow" And MyAge=19 Then
    Print "あなたは本物のSinryowです。"
End If

これは,MyName が「Sinryow」で,なおかつ MyAge が 19 のときのみ「あなたは本物のSinryowです。」と表示します。(19歳というのは,これを書いたときの私の年齢です)
また,3つ以上の条件式がすべて成り立っていることを表すには,「A And B And C」のように「And」を並べていけばよいです。

(2)Or 演算子

これは,Or の前後の2つの条件式のうち少なくとも1つが成り立っていることを表します。

#prompt
Dim MailAddress As String
Input "メールアドレスを入力して下さい>",MailAddress
If MailAddress="mail@sinryow.net" Or MailAddress="sinryow@inter7.jp" Then
    Print "これはSinryowのメールアドレスです。"
End If

MailAddress の値は,「mail@sinryow.net」であっても「sinryow@inter7.jp」であっても「これはSinryowのメールアドレスです。」と表示されます。(後者のメールアドレスは,以前使っていたものです。)
なお,3つ以上の条件式のうち少なくとも1つが成り立っていることを表すには,And の時と同様「A Or B Or C」のように「Or」を並べていけばよいです。

(3)Not 演算子

これは,直後の条件式が成り立たないことを表します。

#prompt
Dim MyName As String
Input "あなたの名前は>",MyName
If Not MyName="Sinryow" Then
    Print "あなたはSinryowではありません。"
End If

Not の直後の条件式が成り立たないのですから,この場合は「MyName が『Sinryow』ではない」ときに条件成立です。

(4)Xor 演算子

他の3つに比べてあまり使用頻度は多くありません。Xor の前後の2つの条件式のうち1つだけが成り立っていることを表します。

#prompt
Dim MyName As String, MyURL As Long
Input "あなたのお名前は>",MyName
Input "あなたのホームページアドレスは>",MyURL
If MyName="Sinryow" Xor MyURL="http://www.sinryow.net/" Then
    Print "あなたは偽者のSinryowですね。"
End If

名前が「Sinryow」なのにURLが「http://www.sinryow.net/」でないなら,偽者と判定します。逆も同じです。

Xor は And・Or・Not の組み合わせで表現可能です。
A Xor B
= (A And (Not B)) Or ((Not A) And B)
= (A Or B) And ((Not A) Or (Not B))

なお,算術演算子(計算に用いる演算子)だと「*」「/」が「+」「-」より優先度が高い,というように優先順位があるわけですが,論理演算子も同様に優先順位が存在します。

(優先度高) Not - And - Or - Xor (優先度低)

問12 2つの数値を入力し,「Aが正でBも正」または「Aが正でなくBも正でない」という条件のときのみ「実験成功」と表示せよ。

戻る