複数の命題が同値の場合のみ処理

1:0th track@mixi:2009/03/26(木) 09:14:00
つまり、全ての条件がtrueの場合か全ての条件がfalseの場合だけ通る条件式。

真 + 真 = 真
偽 + 真 = 偽
真 + 偽 = 偽
偽 + 偽 = 真


//PHP
if((($a == 1) == ($b > 2)) == ($str == 'abc'))

#Perl (ActivePerl)
if((($a == 1) == ($b > 2)) == ($str eq 'abc'))

//C/C++ (VC/Cint/TCC)
if((a == 1) == (b > 2) == (strcmp(str, "abc") == 0))

//D (1.x)
if(((a == 1) == (b > 2)) == (str == "abc"))


($a == 1)と($b > 2)がtrueと評価されれば true == true の評価が行われる。
結果はもちろんtrue。
両方がfalseと評価されても false == false の評価が行われて結果はtrue。
$a = $b = 1; とした場合は true == false になるので結果はfalse。

($a == 1) != ($b > 2) ってやるとXORかな?

C/C++以外では a == b == c ってやるとエラーが出るみたい。
(a == b) == c なら通る。

<サクラサク | 3月の記事一覧 | わたしは少し考えを改めるべきかもしれない>
<<前の5件 | ぜろろん雑記(開発中)TOP | 次の5件>>


コメントはまだありません。

このブログシステムはまだ開発中です。
コメントフォームが表示されていても書き込むことはできません。

ナビゲーション


ね、簡単でしょ?