• ベストアンサー

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

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

まぁswitchは原則、特定の条件に一致した場合の分岐ですから、 ifのように柔軟ではありません。 たとえば if($a==1) ・・・ elseif($b==1)・・・ とか if($a>1) ・・・ else($a>0) ・・・ などswitchには向いていません。 逆にif分岐は冗長な表現になるため列記すると視認性がおちることから 単純な分岐で、要素数が多い場合はswitchを使うことが多いです。 switch($a){ case 1: ・・・ case 2: ・・・ case 3: ・・・ } とするとわかりやすいですが、 if($a==1)・・・ else($a==2)・・・ else($a==3)・・・ などとすると、いちいち$a==○○などという評価式を書くため 見た目にもいまいちです

-macha-
質問者

お礼

確かに。単純な分岐でしか機能しなさそうですね。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

分岐材料が多いときにswitchを使います。 if(A==1) 処理1; elseif(A==2) 処理2; elseif(A==3) 処理3; else 処理4; と、 switch(A){ case 1: 処理1;break; case 2: 処理2;break; case 3: 処理3;break; default: 処理4; } は、同じことです。

-macha-
質問者

お礼

回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpのswitch文について switchはif

    phpのswitch文について switchはifと違って、条件式の中がブール型の論理演算とかではないんですか? 完全に1つの値とかなんですかね? $num1>5とかそういうのは入らないんですか?

    • ベストアンサー
    • PHP
  • switch文について

    お世話になります。switch文について教えてください。 分岐の条件を複数使用することは出来ますか。 たとえば switch(a) [ case "1": if (x == "0") { document.write(1x0); } else if (x == "1") { document.write(1x1); else { document.write(1x); break; } case "2": if (x == "0") { document.write(2x0); } else if (x == "1") { document.write(2x1); else if (y == "0") { document.write(2y0); else { document.write(2x); break; ] という構文は可能ですか。 case 2でx yの二分岐しても可能ですか。 教えてください。

    • ベストアンサー
    • Java
  • Socket IOでIf文は使えますか?

    こんにちは プログラミング初心者です。(2日前に本格的に始めました) そこで、いろいろ疑問が溢れてしまってどちら様か回答お願いします。 「Socket IOでIf文またはSwitch文は使えますか?」 また、これらを同時に複数で関係を持つことは可能ですか? もしよろしかったら お願いします

    • ベストアンサー
    • HTML
  • if文の条件分岐

    お世話になっております。 VBについて初心者なので、参考書を見て勉強しております。 if文の条件分岐についてイメージが出来なくて困っています。 例えば、 (1)Windows XPのインストールのVBS、パラメーター用のbat (2)Windows VistaのインストールのVBS、パラメーター用のbat があるとします。 if文を使って、VBSを開いた時に(1)か(2)の分岐を選択するように書くには「if・・・Then・・・Else」を使って書くのが良いのでしょうか? 勉強不足で自己解決ができません・・・ 宜しく御願いします。

  • if文について

    最近、C言語プログラムから、離れていて、久しぶりにここを覗いたのですが、 こんな質問を見ました。 質問 C言語初心者だが、学習用に良いサイトはないか? 最初の回答の方は、ある初心者用と思われるサイトを、紹介してらっしゃいました。 それに対して、他の回答者の方々は、そのサイトの一分を引用して、コンパイルできないし、間違っていると指摘されました。それは以下のようなものでした。 if(条件式) 文1; else 文2; その代わりに掲載されているのが次のようなものでした。 if(条件)条件が真のときに実行する1文; else 条件が偽のときに実行する1文; 私には、最初の回答がなぜ間違っているのか、何故コンパイルできないのか、判りません。何方か詳しく教えていただければ、嬉しいです。よろしくお願いします。

  • if文について

    if文の条件分岐を勉強しております。 ifに合致したとき、リンク先に飛ばしたいと考えています。 下記に記載しました3行目の【./飛ばしたい.html】の前後にどんな設定をすれば、 ifに合致した場合、リンク先に飛ばすことができるのでしょうか? よろしくお願いします。 1 if(***) 2 { 3 ./飛ばしたい.html 4 } 5

    • ベストアンサー
    • PHP
  • スイッチ文の利用について

    Perl/CGIにてプログラミングを行っております。 ただいま条件分けにより処理を分けていく処理を作っているのですが、C言語でやったスイッチ文があれば便利だなと思っております。 しかし、Perlにはスイッチ文が無いようなのです。 手持ちの参考書を見ても載っておらず、諦めようかと思いましたが大量にならぶifとelsifをみてやはり思い直しました。 スイッチ文、もしくはそれに近いものってありますでしょうか? 理想としてはC言語のままの switch(式or変数){ case hoge: ... case hoge2: ... } のような形式を望んでおります。 何か有益な情報等ありましたらお知恵をお貸しください。

    • ベストアンサー
    • Perl
  • switchでの条件分岐の書き方を教えて下さい。

    こんにちは。 いつもお世話になっております。 またわからない事が出てきてしまったので、どうか ご指導よろしくお願いいたします。 簡単な検索機能をつくりたくて、思考錯誤 しております。 フォームからPOSTで受け取る変数の数は 10個あります。 それぞれの変数が ””でなければ、受け取った 変数を元に、SQL文がかわってゆく。 という事がしたいのです。 10個もあるので、たとえば 変数が$_POST["a"]から$_POST["j"]まであった時に if文を使うとすると if($_POST["a"] != "" && $_POST["b"] == "" && $_POST["c"] != "" (略)){ $stt = "検索したい予定のSQL文1"; }elseif($_POST["a"] == "" && $_POST["b"] != "" && $_POST["c"] != "" (略)){ $stt = "SQL文2"; ・ ・ ・ と言う風に、ものすごいにはなると思うのですがifを つなげていけば良いのかな、と思うのです。 PHPの基礎HPなどを検索してみると、SWITCHを 使えば、多岐に分岐するIF文を、見やすくできる、 と書いてあったので、使ってみたいのですが、書き方の 説明によると switch(変数){ case 値1:  条件を満たす時の処理1 break; case 値2:  条件を満たす時の処理2 default: } と紹介してあったのですが、今回わたしがしたい場合の 条件分岐だと、変数は一つではなく、ある変数は空でこの変数は値が何か入っていて、またもう一つの変数は 空で・・・の時は、このSQL文、というように させたい場合には、switchでどうかけばよいのか わからないのです。 それとも、こういう条件分岐の場合は、switchを 使うべきではないのでしょうか・・・? どうかご指導よろしくお願いいたします。  

    • ベストアンサー
    • PHP
  • PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか?

    PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか? for文やwhile文ではbreakやcontinueなどが使えるようですが、if文にはないのでしょうか? 条件分岐がいくつかあって、その一つを途中で抜けて次の条件分岐へと移行したいのですが、 exitを使ってしまうと、次へ行かずに処理が中止されてしまいますし、 どのようにすればよいのか分からず困っています。何かよい方法はないでしょうか?

    • ベストアンサー
    • PHP
  • C言語 if文

    C言語のif文についての質問なのですが、ifを使い、条件Aの時は1のプログラムを実行、条件Bの時は2のプログラムを実行するようにしたとき、1と2のプログラム自体にもif文が使われています。その場合は、AとBの時のifと1と2に使われているifをどのように区別するのですか?(ちなみに1と2のif文については、それぞれ実行してみたところ動作可能でした。)説明が下手ですいません。初心者ですので、分かりやすく教えていただけると有難いです。