• ベストアンサー

[ASP]If~Else If~End If 対 Case

こんにちわ。 ASPでWEBプログラミングをしております者です。 条件分岐の部分なのですが、結構なパターンで分岐させる予定です。 その際、Ifを使うのとCaseで分岐させるのではどちらが良いか?ということです。 サーバの負担の少ないのはどっちなんでしょうか? どうお考えですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.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 とする方法もありますね。

その他の回答 (4)

  • qaznet
  • ベストアンサー率50% (1/2)
回答No.4

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文を使用したほうがよいと思います。

  • Traja
  • ベストアンサー率19% (107/546)
回答No.3

「結構なパターンで」とのことですので 条件式に対する、分岐点が多数あると言うことなのかな? 条件に対して、「AかBか」とか「onかoffか」と言った 二者択一のような場合でしらば、ifでよいのでしょうが Aの時~ Bの時~ Cの時~ といった感じでしたらば、caseでしょうね 後から見た場合に、その方が分岐条件が理解しやすい気がします。

  • urovy
  • ベストアンサー率33% (7/21)
回答No.2

私もASPを少しかじってますが・・・ 私ならCaseでの分岐をおすすめします。 あとあとのメンテナンスを考えるとIfのネスト構造より Caseで条件を明記した方がいいと思いますよ。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

多分 負担は 変わらないと思いますが・・・。 どちらが、知らない人が見ても わかるか という観点でプログラムしたらいいと思います。

関連するQ&A

専門家に質問してみよう