ifに()が使えることに、今更気づいた

投稿者:Material 7186 1 mini ikosami 投稿日:2012/05/13 22:28

タイトルのとおりです。

a = 1;b = 2;c = 3;d = 4

if a == 1 && b == 2 || c == 3 && d == 1
   speak("true")
else
  speak("false")
end


だと、
a = 1 と、(b = 2もしくはc = 3)と d = 4 が正しい
で、false
となるのに、

a = 1;b = 2;c = 3;d = 4

if (a == 1 && b == 2) || (c == 3 && d == 1)
   speak("true")
else
  speak("false")
end


だと、
(a = 1 と b = 2 が正しい) もしくは(c = 3 と d = 4が正しい)

でtrue
でした。


|| 


1+2*3+4=11
みたいに、先に考えられてしまうみたいですね。

(1+2)*(3+4)=21



ひょっとして、常識ですか?

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2012/05/13 23:06, 履歴)
基礎のひとつですが
スクリプト言語のマニュアルには
記載されていないのですね。
Material 7186 1 mini ikosami(投稿日:2012/05/13 23:48, 履歴)
やっぱり基礎なんですね。

便利な(知らないと困る)基礎がまだまだ色々ありそうな気がします・・・
128 mini fragile(投稿日:2012/05/14 12:41, 履歴)
そういえばcase文で
case a
when 0, 7
speak("a = ", a)
end

と , で区切ればifの||と同じ使い方ができると少し前に知ったばかりです(^^;
Errorが直せなくてcaseを1つずつ書いたのもいい思い出(w
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/05/14 12:48, 履歴)
この手法は初耳です。

こちらにこういった
手法のまとめがありますので
投稿されてみては?
128 mini fragile(投稿日:2012/05/14 14:32, 履歴)
念のため確認してみたら全然違いました(
何かすいません(^^;
User icon mini 退会したユーザー(投稿日:2012/05/14 23:53, 履歴)
コンマで区切ってそんなことができるのかと、
一瞬びっくりしました(w
もしできたらif文の存在意義が薄れてしまうような気もしますが。
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/05/14 07:56, 履歴)
知りませんでしたorz
User icon mini 退会したユーザー(投稿日:2012/05/13 23:16, 履歴)
なるほどー。
知りませんでした。勉強になります。
Material 71926 1 mini なとおとき(投稿日:2012/05/13 22:47, 履歴)
知らんかったでw