プログラミング言語の中でも人気な言語のひとつに「Java」があります。
OSに依存をしないためどんな環境でもソフトを動かすことができ、処理速度が速いといった点も人気の理由です。
Javaでは、条件に応じて実行する処理を分ける際に用いられる機能として条件分岐があります。
条件分岐は、繰り返し処理と並んでプログラムを組む上では最も基本的といえる、よく使う構文になります。
そして条件分岐には「if文」と、「switch文」という書き方があります。
この2つの条件分岐の構文について使い分けるポイントはあるのでしょうか。
今回は「if文」と「switch文」について、違いと使い分けのポイントについてご紹介します。もくじ
◆if文
if文を使うと、条件式を満たした時に指定した処理を実行することができます。
一般的な構文は以下のようになります。
if (条件式){ 実行する処理 }
次のサンプルプログラムでは、int型変数numの値が70より大きい場合、「OK」を画面に表示します。
int num = 100; if (num > 70){ System.out.println(“OK”); }
この場合、(num >70)、つまり、「numが70より大きい」という条件を満たすときに、処理をおこないます。
またif文では、条件式を満たしている「true」の場合に、( )の中に記述された処理が実行され、条件式を満たしていない「false」の場合は、この処理をスキップします。
◆switch文
switch文は、条件処理ではよく使われる構文です。
switch文を使うとある変数の値によって条件分岐を行うことができ、多分岐(3分岐以上)の処理の記述が可能です。
一般的な構文は以下のようになります。
switch (式){ case 値1: 実行する処理1 break; case 値2: 実行する処理2 break; case 値3: 実行する処理3 break; default: 実行する処理4 }
式の値が、値1~値3の場合で条件分岐し、それぞれのcaseの値に対応した実行する処理がおこなわれます。
式に入るのは計算式、変数、数値、文字、文字列になります。
最後の「default」は、式の値がいずれのcaseの値とも一致しない場合の処理です。
条件に用いるある値によって、一度に複数に分岐させるのがswitch文の特徴になります。
◆if文とswitch文の違いと使い分け方
条件によって処理を分けるという点ではif文もswitch文も同じです。
では、それぞれはどのように使い分ければ良いのでしょうか。
基本的にはif文は条件指定をしてtrue or falseで条件分岐します。
一方、switch文は、変数の値によって条件分岐します。if文では条件を上から順に探索します。
二分岐の場合はif文が、多分岐の場合には、switch文が適しているといえるでしょう。
if文を用いてswitch文と同じ処理を実現することも可能ですが、else if文を何度も記述しなくてはならない為、コードが複雑になり、処理の速度が遅くなります。
またバグの原因にもなります。
プログラムを組む際にIf文とswitch文、どちらを用いるか迷うときがあると思いますが、その場合には実行させる処理をフロー図に書き出してみるとよいでしょう。
どちらの処理に適した構文なのか判断する助けになります。
◆まとめ
今回はif文とswitch文について、違いと使いわけについてご紹介しました。
それぞれプログラムを組む上でよく使う構文になりますので、if文とswitch文の違いを知り、特性を生かした使い分けを行うことで簡潔なプログラムが書けるでしょう。
記述パターンをしっかりと学んで、if文、またはswitch文をどの場面で使うべきなのかを適切に判断できるようにしていきましょう。