if-elseとswitchの違い
コンテンツ
「If-else」と「switch」はどちらも選択ステートメントです。選択ステートメントは、条件が「true」であるか「false」であるかに基づいて、プログラムのフローをステートメントの特定のブロックに転送します。 if-elseステートメントとswitchステートメントの基本的な違いは、if-elseステートメントが「ifステートメントの式の評価に基づいてステートメントの実行を選択する」ことです。 switchステートメントは「多くの場合、キーボードコマンドに基づいてステートメントの実行を選択します」。
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | if-else | スイッチ |
---|---|---|
ベーシック | どのステートメントが実行されるかは、ifステートメント内の式の出力に依存します。 | どのステートメントが実行されるかはユーザーが決定します。 |
表現 | if-elseステートメントは、複数の選択肢に対して複数のステートメントを使用します。 | switchステートメントは、複数の選択肢に単一の式を使用します。 |
テスト中 | if-elseステートメントは、論理式だけでなく同等性もテストします。 | switchステートメントは、等価性のみをテストします。 |
評価 | ifステートメントは、整数、文字、ポインター、浮動小数点型、またはブール型を評価します。 | switchステートメントは、文字または整数値のみを評価します。 |
実行の順序 | ステートメントが実行される場合、またはelseステートメントが実行される場合。 | switchステートメントは、breakステートメントが現れるか、switchステートメントの終わりに達するまで、次々にケースを実行します。 |
デフォルトの実行 | ifステートメント内の条件がfalseの場合、デフォルトでelseステートメントが作成された場合に実行されます。 | switchステートメント内の条件がどのケースとも一致しない場合、そのインスタンスについては、作成された場合にデフォルトステートメントが実行されます。 |
編集 | ネストされたif-elseステートメントが使用されている場合、if-elseステートメントを編集することは困難です。 | スイッチケースは簡単に認識できるため、簡単に編集できます。 |
if-elseの定義
if-elseステートメントは、OOPの選択ステートメントに属します。 if-elseステートメントの一般的な形式は次のとおりです
if(expression){statement(s)} else {statement(s)}
ここで、「if」と「else」はキーワードであり、ステートメントは単一のステートメントまたはステートメントのブロックにすることができます。式は、ゼロ以外の値については「true」と評価され、ゼロについては「false」と評価されます。
ifステートメントの式には、整数、文字、ポインター、浮動小数点を含めることができます。または、ブール型にすることもできます。 elseステートメントは、if-elseステートメントではオプションです。式がtrueを返す場合、ifステートメント内のステートメントが実行され、falseを返す場合、elseステートメント内のステートメントが実行され、elseステートメントが作成されない場合、アクションは実行されず、プログラムの制御が飛び出しますif-elseステートメントの。
例で理解してみましょう。
int i = 45、j = 34; if(i == 45&j == 34){cout << "i =" < スイッチの定義
switchステートメントは、複数選択の選択ステートメントです。 switchステートメントの一般的な形式は次のとおりです
switch(expression){case constant1:statement(s);ブレーク; case constant2:ステートメントブレーク; case constant3:ステートメント;ブレーク; 。 。デフォルトステートメント; }
式が整数または文字定数を評価する場所。ここの式は、等しいかどうかのみを評価します。式は、caseステートメントにある定数に対して検証されます。一致するものが見つかった場合、そのケースに関連付けられたステートメントは、「ブレーク」が発生するまで実行されます。 caseステートメントではbreakステートメントがオプションであるため、breakステートメントが存在しない場合、switchステートメントが終了するまで実行は停止しません。
式には単一の式のみが含まれます。 switchステートメントは、多くの場合、キーボードコマンドを使用して、複数のcaseステートメントから1つを選択します。
int c; cout << "は1〜3"の値を選択します。 cin >> i; switch(i){case 1:cout << "dark choclateを選択";ブレーク;ケース2:cout << "キャンディーを選ぶ";ブレーク;ケース3:cout << "ロリポップを選ぶ";ブレーク; 。 。デフォルトcout << "何も選択しない"; }
ここで、「i」の値はどのケースを実行するかを決定し、ユーザーが「i」の値を1、2、または3以外に指定すると、デフォルトのケースが実行されます。
- ifステートメント内の式は、ifブロック内またはelseブロック下でステートメントを実行するかどうかを決定します。一方、switchステートメント内の式は、実行するケースを決定します。
- 複数のステートメントを選択するために、複数のifステートメントを使用できます。スイッチでは、複数の選択肢に対して1つの式しかありません。
- If-esleステートメントは、論理式だけでなく同等性もチェックします。一方、スイッチは同等性のみをチェックします。
- ifステートメントは、整数、文字、ポインター、浮動小数点型、またはブール型を評価します。一方、switchステートメントは、文字または整数データ型のみを評価します。
- 実行シーケンスは、ifブロックの下で実行されるステートメント、またはelseブロックの下で実行されるステートメントのいずれかに似ています。一方、switchステートメントの式は、どのケースを実行するかを決定し、各ケースの後にbreakステートメントを適用しない場合、switchステートメントの最後まで実行します。
- if内の式がfalseである場合、elseブロック内のステートメントが実行されます。 switchステートメント内の式がfalseであることが判明した場合、デフォルトのステートメントが実行されます。
- 修正が必要な場所を追跡するのは退屈なので、if-elseステートメントを編集するのは困難です。一方、switchステートメントはトレースしやすいため、簡単に編集できます。
結論:
switchステートメントは、さまざまなステートメントの個別のケースを作成するため、編集が簡単です。一方、ネストされたif-elseステートメントでは、編集するステートメントを識別することが難しくなります。