Luaプログラミング入門

論理演算子 Slideshow

次のようなコードを書いたとします.

hoge, piyo = 10, 20

if( hoge == 10 ) then
        if( piyo == 20 ) then
                print("hello")
        end
end

この式はhogeが10であり,かつpiyoが20である時,Helloが表示されます. ここで論理演算子というものが存在します(下表).

論理演算子
x == 10 and y == 20 xが10 かつ yが20
x == 10 or y == 20 xが10 または yが20
not x xの否定

つまり,先ほどの例をこの論理演算子を使って書き直すと次のようになります.

hoge, piyo = 10, 20

if( hoge == 10 and piyo == 20) then
        print("Hello")
end

ここで,xの否定とはどういうことを意味しているでしょうか.

hoge = 10
if( not hoge == 10 ) then
        print("Hello")
else
        print("World")
end

not hoge == 10はhogeが10でない場合は条件が真となり,そうでない場 合は条件が偽となります.

よってこのプログラムは条件が偽となり,Worldと表示されます.

C言語との違い
  • &&, ||, ! ではなく and, or, not
 by nishio

Comment Form:

コメント・トラックバック規約を必ずお読みください。

 

Comments:

2009/04/13 19:01:54 nishio
>> pochy9nさん

いつもご指摘ありがとうございます.
修正しました.
2009/03/28 13:10:20 pochy9n
もう1つ、細かいですが、「||」は全角ではなく、半角の「||」です。
2009/03/28 13:07:43 pochy9n
再び、誤記と思われる箇所を指摘させていただきます。

----

if( not hoge ) then
 V
if( not hoge == 10 ) then


not hogeはhogeが10でない場合は条件が真となり,そうでない場合は条
件が偽となります.
 V
not hoge == 10はhogeが10でない場合は条件が真となり,そうでない場
合は条件が偽となります.つまり、hoge ~= 10と同じです。

----

※not xのみだと、xが真でなければ、つまり、xがfalse,nil以外でなけ
れば、簡単に言うとxがfalse,nilならば、条件が真になるはずです。

Trackback URL: http://karetta.jp/trackback/book/229570/230174

Trackbacks:


このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation