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

M.Kamiya fit0449 @ fitec.co.jp
2003年 6月 24日 (火) 14:57:53 JST


紙谷です。

A.K.Iさん、マニュアルは見ていましたが、中途半端でした。

caseと同じ動きをするif文を先ほど重松さんが書かれていましたが、確かに同じ動き
をしてしまいました。
if ($x === ($x <= 20)) {
$kura_memori = 1;
}

正しい動きをすると思い記述していたif文は、
if ($x <= 20) {
$kura_memori = 1;
}
です。
私の考えが根本的に間違っているのでしょうか?



----- Original Message ----- 
From: "A.K.I." <aki @ tetsuneko.com>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Tuesday, June 24, 2003 2:39 PM
Subject: [PHP-users 16172] Re: case文での比較演算子について


> http://www.php.net/manual/ja/control-structures.switch.php
>
> なんと日本語マニュアルのページのswitchのところににちゃんとif
> との比較まで載ってます。当然このあたりは見た上での質問なのだ
> ろうとは思うのですが、念のため。
>
> 正しく答えるなら
>
> >switchのcase条件として、比較演算子を使用するのは不適切なのでしょうか?
>
> この質問に対する答えは「caseは条件を書くモノではなく値を書くモノ
> です。条件式の結果のtrue、falseがcaseの値として使われます」
> という感じでしょうか。
>
> >グラフを作成するためのy軸目盛をデータのmax値($x)をチェックして設定する構
文で
> >す。
> >switch ($x) {
> >  case ($x <= 20):
> >    $kura_memori = 1;
> >    break;
> >  case ($x <= 100):
> >    $kura_memori = 5;
> >    break;
> >  default:
> >    $kura_memori = 1000;
> >}
> >
> >$xに0が入ってきた場合に、無視されて、default:が実行されてしまうのですが、
こ
> >れは使用なのでしょうか?
> これに関しては「無視されていません。$xの値が($x<=20)の値とも($x<=100)
> の値とも異なるのでdefaultが処理されます」
> といったところでしょうか。
> ちなみにfalseは0、trueは0以外ということを併せて考えると、な
> ぜ「$xに0が入ってきた場合に」といった条件が発生するのか理解
> しやすいかな、と。
>
> >if文ではちゃんと分岐してくれるのですが。
>
> これは、同じ動きをすると思っているif文を示して頂けないと判断
> できません。
>
>
>
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>
>





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