
Webデザインには、あなたの知らない「落とし穴」がたくさん。大きなものから小さなものまで、それが及ぼす影響はさまざまだ。カンペキだと思っているあなたのサイトも、実はすでに暗い穴の中かも・・・。
 |
条件設定における「if」と「else if」の使い分けについて
|

|
「if」と「else if」の違いによる落とし穴を紹介する。ifは「もしも?ならば?」、else ifはifの条件が外れたあとの「だったらこの条件ならば?」のような意味である。
ifは、【1】のようにifだけで構成した条件設定を1フレームで全部判断する。詳しくプログラムを追っていくと、変数「hensu」が「0」だったら「hensu」に「1」を入れる。変数「hensu」が「1」だったら「hensu」に「2」を入れる。と設定しているが、ifのみのこの場合、「0」だったら「1」、「1」だったら「2」と1フレーム上で連続で設定してしまうため、「hensu」が「0」だったとしても必ず「hensu」は「4」まで設定されてしまう。
しかし、このとき【2】のようにelse ifを使っていると、変数「hensu」が「0」だったら「hensu」に「1」を入れる。この命令以降のelse ifは最初の条件が外れていれば実行という意味なので、無視してくれる。「hensu」は「1」のままで、次回この命令があらためて実行されると「hensu」が「1」なので、「2」を代入するという命令を実行し、またそれ以降のelse ifは無視してくれる。
したがって、同じ変数で条件設定する場合は【2】、違う変数を同フレームで複数条件設定する場合は【1】の構成を使い分ける。今回のプログラムふたつには、「そうでなかったら?」のelseがないので、条件が当てはまらなかったら何もせずにスルーするということになる。
| |
f (hensu==0) {
hensu = "1";
}
if (hensu==1) {
hensu = "2";
}
|
| |
if (hensu==2) {
hensu = "3";
}
if (hensu==3) {
hensu = "4";
}
|
【1】ifのみのプログラム
| |
if (hensu==0) {
hensu = "1";
} else if (hensu==1) {
hensu = "2";
} else if (hensu==2) {
hensu = "3";
} else if (hensu==3) {
hensu = "4";
}
|
【2】else ifを使ったプログラム
解説:横山 剛
(※本文中、及びキャプション内で使用している「<」、「>」は、全角になります。ご注意ください。)