推奨されます, 2019

エディターズチョイス

if-elseとswitchの違い

「If-else」と「switch」はどちらも選択ステートメントです。 選択ステートメントは、条件が「真」か「偽」かに基づいてプログラムの流れを特定のステートメントブロックに転送します。 if-else文とswitch文の基本的な違いは、if-else文は「if文の式の評価に基づいて文の実行を選択する」ということです。 switchステートメントは、「キーボードコマンドに基づいてステートメントの実行を選択する」ことがよくあります。

比較表

比較基準if-elseスイッチ
基本どのステートメントが実行されるかは、ifステートメント内の式の出力によって異なります。どのステートメントが実行されるかはユーザーによって決定されます。
if-else文は複数の選択肢に複数の文を使用します。switchステートメントは複数の選択肢に対して単一の式を使用します。
テストif-elseステートメントは、論理式と同等かどうかをテストします。同等性についてのみswitchステートメントをテストします。
評価if文は、整数、文字、ポインタ、浮動小数点型、またはブール型を評価します。switchステートメントは文字または整数値のみを評価します。
実行順序if文を実行するか、else文を実行します。switchステートメントは、breakステートメントが現れるまで、またはswitchステートメントの終わりに達するまで、次々にケースを実行します。
デフォルト実行ifステートメント内の条件が偽の場合、デフォルトでelseステートメントが作成されていればそれが実行されます。switchステートメント内の条件がいずれのケースとも一致しない場合は、そのインスタンスに対してデフォルトステートメントが作成されていればそれが実行されます。
編集ネストされたif-elseステートメントが使用されている場合、if-elseステートメントを編集するのは困難です。スイッチケースは簡単に認識されるので、編集するのは簡単です。

if-elseの定義

if-else文は、OOPの選択文に属します。 if-elseステートメントの一般形は次のとおりです。

 if(expression){statement} 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 << "ダークチョコレートを選びます"; ブレーク; ケース2:cout << "あなたはお菓子を選びます"; ブレーク; ケース3:cout << "lollypopを選択しました"; ブレーク; 。 。 default cout << "あなたは何も選ばない"; } 

ここでは、「i」の値によってどちらのケースが実行されるかが決定され、ユーザーが1、2、または3以外の「i」の値を指定した場合は、デフォルトのケースが実行されます。

if-elseとswitchの主な違い

  1. ifステートメントの内側の式は、ステートメントをifブロックの内側で実行するか、elseブロックの下で実行するかを決定します。 一方、switch文の中の式はどちらのケースを実行するかを決定します。
  2. 複数の文を選択するために、複数のif文を使用できます。 switchでは、複数の選択肢に対して1つの式しかありません。
  3. If-esleステートメントは、論理式と等価性を検査します。 一方、switchは等価性のみをチェックします。
  4. ifステートメントは、整数、文字、ポインター、浮動小数点型、またはブール型を評価します。 一方、switch文は、文字データ型または整数データ型のみを評価します。
  5. 実行順序は、ifブロックが実行される場合のステートメント、またはelseブロックステートメントが実行される場合のステートメントのいずれかと同じです。 一方、switchステートメントの式は、実行するケースを決定します。各ケースの後にbreakステートメントを適用しないと、switchステートメントの最後まで実行されます。
  6. ifの内側の式が偽になった場合、elseブロックの内側のステートメントが実行されます。 switch文の中のexpressionがfalseであることが判明した場合は、デフォルトの文が実行されます。
  7. 訂正が必要な箇所を追跡するのは面倒なので、if-elseステートメントを編集するのは困難です。 一方、switchステートメントはトレースが容易なので、編集するのは簡単です。

結論:

switch文は、文ごとに大文字と小文字が区別されるため編集が簡単ですが、if-else文のネストでは、編集する文を識別するのが難しくなります。

Top