• ベストアンサー

[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

  • ASP(IIS?)のエラーについて

    お世話になっております。 ASPのプログラムをやっている者なのですが、分かるかたいましたらご教授ください。 環境はWin2003Server+IIS6.0になります。 上記の環境で自部門のWebサーバーのプログラミングをしているのですが、ここ最近 「HTTP/1.1 新しい Session の作成に失敗しました」 というASPエラーがでてしまいWebが見れない状態になっております。 内部公開用のサーバーで前任者が辞めてしまい、その後私が引き継ぐことになったのですが、サーバーにあまり詳しくないのもあり苦戦しております。 必死に原因と対策を探したのですが、これといった原因、対策方法が見つからず途方に暮れております。 探していて、なんとなくわかったことはIIS側に問題あるのではないだろうか?という事くらいです。 それも確定ではないのですが、非常に困っており何方か分かる方いらっしゃいましたら、是非ご教授願えませんでしょうか?m(__)m どうぞ、よろしくお願いいたします。

  • 条件分岐 if(elseif) switchの実行速度

    条件分岐に if switchがありますが、 ifパターン ============================== if ( $a = 1) {   処理A } elseif ($a = 2) {   処理B } ============================== switchパターン ============================== switch($a){ case '1':   処理A break; case '2':   処理B break; } ============================== 実際はもっと複雑ですが、どちらのほうが実行速度が速いのでしょうか。

    • ベストアンサー
    • PHP
  • LinuxでASPは動かせますか??

    現在はWindowsXPで家庭内サーバを構築しています。 ASPやASP.NETなどのWebアプリを動かしています。 Linuxに興味があり、勉強のためにFedoraCore6で新しくWebサーバをたてようかと思っているのですが、Linux系OSでASPやASP.NETは動くのでしょうか? 通常の方法では無理だと思うのですが、なにか裏技があれば教えてくdさい。

  • (if/elseif)と(switch文)の使い分け方

    プログラミング初心者です。 switch文がある事を最近知りました。 条件分岐をする時は主にif文を使用してきましたが、switch文とはどのように使い分けるものなのでしょうか。 こんな質問で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • ASP内で他のASPファイルを読み込む方法

    ASP内で別ファイル(A.html)を読み込みました。下記の通りです。 <% Set objA = Server.CreateObject("Scripting.FileSystemObject") Set objFile = objA.OpenTextFile("A.html", 1, False) If Err.Number > 0 Then Response.Write "Open Error" Else Do Until objFile.AtEndOfStream Response.Write objFile.ReadAll Loop End If objFile.Close %> 読み込みはできたのですが、問題なのはA.htmlにもASPの処理が書かれてて、その部分がそのままテキストとして表示されたのです。 このように表示されました↓ <% ASP %> 読み込んだ際に、A.htmlに書かれたASP処理も実行させるにはどうすればよいのでしょうか?

  • ASP.NETのWEB画面

    ASP.NETでWEB画面作成しているのですが、かなり遅いです。 早くする方法があれば教えて下さい。 「Visual Studio 2003」と「Visual Studio 2005」を使っています。 どちらで作っても遅いです。 データサーバーはSQLServerとAccessを使っています。 プログラミングはVBを使用しています。 よろしくお願いします。

  • aspスクリプトのポーティングについて

    WindowsNTで動いていたaspのスクリプトをWindows2000 serverのマシンにコピってきたところ、全く動きません。フレームは表示されますが、今までちゃんと見えていたロゴや画像の部分に、aspのスクリプトの内容が表示されているのです。 おそらくはWindows2000 serverで許容しているaspのバージョンにポーティングしなければならないとは思っているのですが、正しいでしょうか? もしそうであれば、何か参考になりそうなWebページや書籍はご存知ないですか? よろしくお願いしますm(__)m

  • IF文で条件により、セルに表示させる項目を変える

    VBA初心者です IF文で条件により、セルに表示させる項目を変えるという話です。 シート1を見てください。IFの分岐が最大で10(タイプ10パターン、複数月10パターンとなるのでこうなる) と多いので、最初シート2でIF文分岐させ、その後VLOOLUPでシート1に結果を表示させようとしていました。しかし、シート2での条件指定に本シート1の特定列全体を指定すると、別の値を拾ってきてしまいました。 そこで再び考えました。計算が複雑でも本シートで10分岐させてしようと(シート3)、今式を作成中ですが、列の値は正確に取ってきています。しかし、タイプ・複数月とも複数あるため1つのIF文では表示できないことに気づきました どう思われますか?

  • ASP、ASP.NETの勉強をしたいのですが

    ASP、ASP.NETについて勉強したいと考えています。 そもそもASPって何?ASP.NET?ASPとは別なの?というぐらい知識がないため、まずは参考書からということで本屋をみたのですが、どれを買ったらいいのやらで…。 私自身はHTML、CSS、Javascript、jQueryでのページづくり、Java風のプログラミング言語での開発の経験はあるものも、VB.NETやC#の開発経験は全くありません。 なので、そういった経験のない初心者にもオススメな書籍があれば教えて頂きたいです。 毎日電車での移動時間が1時間以上あり、この移動時間も利用して勉強したいと考えているので、 電車内でも読めるサイズの書籍も教えて頂けるとありがたいです。 ついでで申し訳ないのですが、どうしてもプログラミングは独学が苦手で、多少値がはってもいいので土日に研修・教室へ通うことも視野に入れています。 だた、今までそういう研修を利用したことがないため、ネットで検索してヒットしたものを受けにいっていいのかとかよくわかっておりません。 なので、初心者がいっても大丈夫なASP.NET、または.NET関連のWeb開発の実習をする研修・講座などありませんでしょうか。 検索方法、研修を選ぶ際のアドバイスでもかまいません。 何卒、よろしくお願いいたします。

  • ASP開発のセキュリティで気をつけるべきことを教えてください

    よろしくお願いします。 ASPで自社用出勤管理システムを作りました。 ASPのプロジェクトに携わった経験はほとんどなく、 ASP経験者が一人もいないのでほぼ独学でASP技術を学びました。 そのためプログラミング技術は身につきましたが、ASPシステムを リリースする際に考慮すべき要素がわからないのです。 例えばセキュリティの面で気をつけるべきこととか・・・。 インターネットを利用して出勤管理を行うことになるので、 ログイン画面のシステムがばれちゃわないかなあ?とか、心配なことがあります。 ASPシステムのユーザリリース経験のある方、よきアドバイスをお願いいたします。 ちなみに見られちゃまずい部分(ユーザ承認システムなど)はサーバサイドに 限り動くように作っていますので、クライアントにソースが渡るようにはつくっていません。

専門家に質問してみよう