[PHP-users 16188]Re: case文での比較演算子について

HAMAI Kyoichi k-hamai @ pb.jp.nec.com
2003年 6月 24日 (火) 16:37:36 JST


濱井です。
2003/06/24 14:57:53 +0900に"M.Kamiya"さんが送られた
メールに関する返信です。

>caseと同じ動きをするif文を先ほど重松さんが書かれていましたが、確かに同じ動き
>をしてしまいました。
>if ($x === ($x <= 20)) {
>$kura_memori = 1;
>}
>
>正しい動きをすると思い記述していたif文は、
>if ($x <= 20) {
>$kura_memori = 1;
>}
>です。
>私の考えが根本的に間違っているのでしょうか?

if文は二分岐で、switch文は多分岐であることを理解されていないように
思います。

if文の式は真と偽との二通りの値しかとらず、一つのif文では二つに分岐する
ことしかできません。それに対して、switch文の式はいくつもの値をとること
ができ、一つのswitch文でいくつもに分岐することができます。

論理的には二分岐だけあれば充分なのですが、二分岐を組み合わせて多分岐を
実現するより、一度に多分岐する方が性能を改善できる可能性があるため、
多分岐が取り入れられました。


PHP-users メーリングリストの案内