プロが教える店舗&オフィスのセキュリティ対策術

ifとswitchはどんなところが違うのですか?
どのように使い分けたらいいのでしょうか?
よろしくお願いします

A 回答 (6件)

4以上はswitchを使え。

と会社のコーディング基準で決まっています。
一般的には、夫々の会社なり、プロジェクトで決める事項です。
    • good
    • 0
この回答へのお礼

ありがとうございました

会社で決まっているんですか!

お礼日時:2006/11/18 20:40

switchの方が、キーストローク少ないとか、


評価対称パラメータのみに依存していることがわかりやすい(視認性が良い)とかのメリットがあります。

一方、ifのほうは、評価対称パラメータ以外の条件が付加された場合に対応しやすい、のメリットがあります。

ただ、個人的には、好みの問題と考えていて、
if---else if---else
しか使いません。
    • good
    • 0
この回答へのお礼

なるほど。いろいろな使い方があるんですね
ありがとうございました

お礼日時:2006/11/19 10:44

単純な分岐ならif文、3つ以上の条件分岐がある場合はswitch文で切り分ければよいと思います。


例えば何度も呼び出される関数の a という引数の値が必ず 1 か 2 か 3 になると分かっている場合はswitch文で書いた方がわかりやすいです。
また、1 と 2 の処理だけまとめたい、という使い方も出来ます。(例2参照)

【例1】
void func( int a )
{
switch( a )
{
case 1:
// 処理A
break;

case 2:
// 処理B
break;

case 3:
// 処理C
break;

default:
// その他の値はコーディングミス
break;
}
}

【例2】
void func( int a )
{
switch( a )
{
case 1:
// a が 1 ならここを通過。このまま処理は case 2 へ遷移する
case 2:
// a が 1 か 2 であればここにくる
break;

case 3:
// 3 ならここにくる
break;

default:
// その他の値はコーディングミス
break;
}
}
    • good
    • 1
この回答へのお礼

わざわざ書いていただきありがとうございました。

とても勉強になります

お礼日時:2006/11/19 11:10

ifではできるけれども、switchではできないことがあります。



例えば、ある整数型変数 a があったとして、
・a>0ならXを実行
・a=0ならYを実行
・a<0ならZを実行
のようなことは、switchではできません。

switchではできることが限られていますが、逆にswitchで十分な状況では、switchを使うとifよりも判りやすいコードになります。
    • good
    • 0
この回答へのお礼

なるほど使い分けしてみます。

ありがとうございました

お礼日時:2006/11/19 11:19

推奨しない使い方。


#gotoよりはましと言う理由で使う人はいる。
switch (0) {
case 0:
// 前処理
...;
/* thru */
case 1:
// 処理1
...;
if (/* error */) {
break;
}
/* thru */
case 2:
// 処理2
...;
if (/* error */) {
break;
}
}
// 後処理
    • good
    • 0

値に対しての処理=switch (同条件に分岐の場合#define等使用するとifより明示的)



式に対しての処理=if

単純にこんな感じで分けてます。
    • good
    • 0

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