ギリギリ行けるお一人様のライン

こんにちわ。
ASPでWEBプログラミングをしております者です。
条件分岐の部分なのですが、結構なパターンで分岐させる予定です。

その際、Ifを使うのとCaseで分岐させるのではどちらが良いか?ということです。

サーバの負担の少ないのはどっちなんでしょうか?

どうお考えですか?

A 回答 (5件)

条件のパターンと言うか組み合わせにもよりますね。


まぁ、私は2件以上の条件になればSELECT文を使用していますが…

以下簡単に、よく使われるであろうパターンを幾つか記述します。
以下の組み合わせで、大半のものは出来ると思います。多分…

例3や例4で記述している「Select Case True」と言う記述は、
通常の記述とは逆にCaseの条件式がTrueであるかという判定をします。
これは何かと使用に便利なので覚えておくといいかもしれませんね。

参考程度の如何でしょうか。


例1:「Aが1の時or2の時or3の時ならば…」
Select Case A
Case 1
Case 2
Case 3
End Select

例2:「Aが1の時orBが1の時orCが1の時ならば…」
Select Case 1
Case A
Case B
Case C
End Select

例3:「Aが1or2の時またはBが1or2の時ならば」
Select Case True
Case A = 1, A = 2
Case B = 1, B = 2
End Select

例4:「Aが1でさらに、Bが1の時or2の時or3の時ならば」
Select Case True
Case (A = 1) and (B = 1)
Case (A = 1) and (B = 2)
Case (A = 1) and (B = 3)
End Select
と言う風に、毎度(A = 1)を書くのもどうかと思うので
If A = 1 Then
  Select Case B
  Case 1
  Case 2
  Case 3
  End Select
End If
とする方法もありますね。
    • good
    • 0

case 文は1つの条件式に対して評価を行うので、一度だけ評価される条件式を書くだけでOKです。



Select Case 条件式
Case "A"
Aの時の処理
Case "B"
Bの時の処理
End Select

これをIf文で書くと
条件式を何度も書かなければならないので、コードも煩雑になりますし、当然処理も遅くなります。
可能な限りCase文使うことをお勧めします。

If文を使うメリットとして、複数の条件式に対して評価をする場合に有効だと思います。

If 条件式A Then
条件式Aの時の処理
ElseIf 条件式B Then
条件式Bの時の処理
End If

それと、記憶が定かではないのですが、Case文では不等号の評価ができなかった気がするので、その際はIF文を使用したほうがよいと思います。
    • good
    • 0

「結構なパターンで」とのことですので


条件式に対する、分岐点が多数あると言うことなのかな?

条件に対して、「AかBか」とか「onかoffか」と言った
二者択一のような場合でしらば、ifでよいのでしょうが
Aの時~
Bの時~
Cの時~
といった感じでしたらば、caseでしょうね
後から見た場合に、その方が分岐条件が理解しやすい気がします。
    • good
    • 0

私もASPを少しかじってますが・・・


私ならCaseでの分岐をおすすめします。
あとあとのメンテナンスを考えるとIfのネスト構造より
Caseで条件を明記した方がいいと思いますよ。
    • good
    • 0

多分 負担は 変わらないと思いますが・・・。


どちらが、知らない人が見ても わかるか という観点でプログラムしたらいいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報