if elseとswitchの違いとは?分かりやすく解説!

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク

if elseとswitchの大きな違いは、if elseでは実行するブロックがif文の式に依存するのに対し、switchでは渡された一つの変数に依存して実行される点です。

プログラミングには様々な判断構造があります。

そのうちの2つがif elseとswitchです。

if elseでは、ifとelseという2つのブロックが存在する。

if」ブロックは式で構成されている。

式が真であれば、「if」ブロックの中の文が実行される。

式が偽の場合、elseブロックの中の文が実行される。

一方、switchは複数のcase文で構成されています。

switchは1つの変数を受け取る。

どのcaseブロックを実行するかは、渡された変数によって決定される。

スポンサーリンク

What is if else

if elseは、プログラミングにおける意思決定を実現するための仕組みです。

ifブロックとelseブロックの2つのブロックから構成されています。

ifブロックには、評価する式が書かれています。

その式が真であれば、ifブロックの中の文が実行されます。

その式が偽の場合は、elseブロックの中の文が実行されます。

以下のプログラムを参照してください。

上記のプログラムでは、変数marksに値60が格納されています。

ifブロックでは、式のチェックを行っています。

マークスの値が75以上であるかどうかをチェックしています。

実際のmarksの値は60なので、この式は偽となります。

したがって、if ブロックの中の文は実行されません。

そのかわり、elseブロックの中のステートメントが実行されます。

スイッチとは

switchは、1つの変数の値をチェックします。

複数のcase文を持っています。

switchに渡された変数に応じて、それぞれのcase文の値をチェックする。

受け取った値とcaseの値が一致すると、その特定のcase内のステートメントが実行されます。

ブレークが発生すると、制御はswitchのすぐ次のステートメントに移行します。

ケースにブレークがない場合、実行は次のケースに移り、以下同様です。

最後に、どのケースも真でない場合は、デフォルトが実行されます。


これはブレークを必要としません

以下のプログラムを参照してください。

Key Difference - if else vs switch 図2: スイッチを使ったプログラム

上記のプログラムでは、評点に文字が含まれています。

この評点はswitchに渡されます。

そして、すべてのcase文がチェックされます。

渡された文字は’B’です。

したがって、case’B’:の中の対応する文が実行されます。

ブレークが発生すると、制御はスイッチを出て、スイッチの後の最初の行に渡ります。

if else と switch の違い

定義

if else は条件が真ならステートメントを実行し、条件が偽ならオプションブロックを実行する制御構造であり、switch は値または変数によってプログラム実行の制御フローを多方向分岐で変更できるセクション制御機構です。

実行

つまり、「if」ブロックの式が真であれば、「if」ブロックの中の文が実行される。

そうでなければ、elseブロックが実行される。

実行ブロックは、評価された式に依存する。

switchはbreak文が出るまで、マッチしたケースの文を実行する。

デフォルトの実行

さらに、ifブロックの条件がfalseであれば、elseが実行される。

switchでは、一致するcase文がない場合、switchの後の最初の行に制御が移る。

テスト

また、if elseは等式と論理式をチェックし、switchは等式をチェックする。

結論

if elseとswitchは、プログラミングにおける2つの意思決定構造です。

if elseとswitchの違いは、if elseではif文の式に依存して実行するブロックが決まるのに対し、switchでは渡された1つの変数に依存して実行する点です。

タイトルとURLをコピーしました