switch...case...if...else...区別する
switchもifも分岐文を処理するために使用されるので、使用するときは、コード効率の問題を考慮して、まず彼らの違いを理解しなければなりません.
まず、この2つの文のフォーマットを見てみましょう. if…else… switch…case…
if文は実行するたびに条件式がtrueかfalseかを判断し、trueの場合は対応する文を実行し、falseの場合は最後のelseが終わるまで次の式を判断し続けます.直線的に実行します.switch文は、エントリ時に式の値を計算し、ジャンプテーブルを検索して対応する文を実行します.そうしないとdefaultになります.二叉木に似ています.
区別1:
switch...case...はcase値が定数の分岐構造にのみ使用できますが、if...else...はより柔軟です.
違い2:
if判断条件は論理式であり、ブール型の合法式、定数、列挙などであってもよい.一方、switchは通常、算術式、または文字を処理します.
違い3:
switchは,一度条件判断を行った後,プログラムの条件文に直接実行する.if...elseにはいくつかの条件があり、何度も判断しなければなりません.
区別4:
if文に比べてswitch文は空間で時間を変える分岐構造である.ジャンプテーブルを生成するため、コードスペースが多くなります.case定数分布範囲が広いが実際の有効値が少ない場合,switch...caseの空間利用率は低くなる.
区別5
分岐が多い場合、switchの使用効率はifより高く、最初のif条件が真でない限り高い.
次に,ブランチが多い場合,if...else...コードの使用可読性はswitch...case...よりも高くない.
まず、この2つの文のフォーマットを見てみましょう.
if ( 1)
{
1;
}
else if ( 2)
{
2;
}
else if ( 3)
{
3;
}
else if ( 4)
{
4;
}
...
else
{
n+1;
}
switch ( )
{
case 1: 1;break;
case 2: 2;break;
case 3: 3;break;
case 4: 4;break;
case 5: 5;break;
...
default: n+1;break;
}
if文は実行するたびに条件式がtrueかfalseかを判断し、trueの場合は対応する文を実行し、falseの場合は最後のelseが終わるまで次の式を判断し続けます.直線的に実行します.switch文は、エントリ時に式の値を計算し、ジャンプテーブルを検索して対応する文を実行します.そうしないとdefaultになります.二叉木に似ています.
区別1:
switch...case...はcase値が定数の分岐構造にのみ使用できますが、if...else...はより柔軟です.
違い2:
if判断条件は論理式であり、ブール型の合法式、定数、列挙などであってもよい.一方、switchは通常、算術式、または文字を処理します.
違い3:
switchは,一度条件判断を行った後,プログラムの条件文に直接実行する.if...elseにはいくつかの条件があり、何度も判断しなければなりません.
区別4:
if文に比べてswitch文は空間で時間を変える分岐構造である.ジャンプテーブルを生成するため、コードスペースが多くなります.case定数分布範囲が広いが実際の有効値が少ない場合,switch...caseの空間利用率は低くなる.
区別5
分岐が多い場合、switchの使用効率はifより高く、最初のif条件が真でない限り高い.
次に,ブランチが多い場合,if...else...コードの使用可読性はswitch...case...よりも高くない.