【Java】条件分岐を詳しく解説

Java

プログラミングをしていると選択肢を与えてコードを分けたいと思ったことはありませんか?

そのような悩みを解決してくれるのは条件分岐です。

条件分岐を使用することで、

「500円のパンを買うか?」

「200円のコーヒーを買うか?」

というような選択肢を与えることも可能です。

今回はそんな条件分岐を行いたいときに使用するif文とswitch文について解説していきます。

if文とは?

では条件分岐のif文について解説していきます。

if文は最も代表的な条件分岐と言っても過言ではありません。

Javaだけでなく他のプログラミング言語でもよく使用されています。

ではまず初歩的なif文の処理の流れについて解説していきます。

if文は下記のように記載することができます。

if(条件式){
	処理
}

条件式に記載した条件が成り立った場合に処理が実施されるというものです。

条件式が成り立たない限り、処理は実施されることはありません。

因みに条件式の結果はboolean型の値である必要があります。

boolean型について知りたい方は下記記事を読んでみてください。

Javaのプリミティブ型(データ型)解説【初学者・初心者用】 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)

ただこれだけですと、条件式が成り立たなかった場合のみに実施される処理がありません。

そのような場合には下記のように記載します。

if(条件式){
	処理1
}
else{
	処理2
}

これは条件式が成り立った場合は処理1のみを実施し、条件式が成り立たなかった場合はelseの処理2を実施するというものです。

これで簡単な分岐処理は行えるようになりますが、コード量が増えてくると条件が1つだけというのは心元くなってきます。

例えば冒頭で記載した「500円のパンを買うか?」「200円のコーヒーを買うか?」という選択肢を作成したいとなった場合を考えています。

「500円のパンを買うか?」という選択肢を条件式に入れたとして、買わないという選択を処理1で実施したとします。

そうすると当然処理はelseに移動しますが、処理2が「200円のコーヒーを買う」という処理だけとは限りません。

「300円のサラダを買う」かもしれませんし「500円のお弁当を買う」かもしれません。

はたまた「何も買わない」という処理を実施するかもしれません。

そうなってくるとif-else文だけでは処理しきれませんよね?

そのような時に使用するのが下記if-else if-else文です。

if(条件式1){
	処理1
}
else if(条件式2){
	処理2
}
else{
	処理3
}

これを使用することで複数の条件式が出てきても対処可能となります。

因みにelse if文はいくつも作成することが可能で、下記のようにelse if文の下にどんどん追加していくことが可能です。

if(条件式1){
	処理1
}
else if(条件式2){
	処理2
}
else if(条件式3){
	処理3
}
・
・
・
else if(条件式N){
	処理N
else{
	処理N+1
}

これで先ほどの「500円のパンを買うか?」「200円のコーヒーを買うか?」の選択肢も下記のように実施することが可能となりました。

if(500円のパンを買うか?){
	500円を払ってパンを買う
}
else if(200円のコーヒーを買うか?){
	200円を払ってコーヒーを買う
}
else{
	何も買わずに店を出る
}

switch文とは?

次にご紹介するのはswitch文です。

if文はboolean型の値によって分岐判定を行っていましたが、switch文は値によって分岐判定を行います。

switch文で使用される値はint型、byte型、short型、char型、String型、Integer型、Byte型、Short型、Character型の9つです。

では早速switch文について解説していきます。

switch(値){
	case 定数値1:
		処理1;
	case 定数値2:
		処理2;
	default:
		処理3;
}

記載方法は上記のようになります。

値と等しい定数値がある場合はその処理を実施します。

例えば値と定数値1が等しければ処理1が実施されるというような感じです。

そしてどの定数値とも等しくなければ、defaultの処理が実施されます。

ただ上記方法ですと少し不都合が生じます。

何かというと値と一致した定数値の処理すべてを実施してしまうということです。

定数値1の処理を実施した後の処理としてswitch文から抜けるのかと考えてしまいますが、そんなことはなく定数値2と比較を行います。

そして定数値2との比較が完了すると今度は、default処理を実施します。

そのまた最悪すべての処理が実施されてしまうということも考えられます。

そのようなことにならないために準備されているのがbreak文です。

下記のように使用することで、一つの処理を実施後はswitch文から抜けることが可能となります。

switch(値){
	case 定数値1:
		処理1;
		break;
	case 定数値2:
		処理2;
		break;
	default:
		処理3;
		break;
}

では実際の処理方法とその実行結果を見てみましょう。

【使用例】
public class ex{

	public static void main(String[] args){
		int a=5;
		switch(a){
		case 1:
			System.out.println("1です");
			break;
		case 2:
			System.out.println("2です");
			break;
		case 3:
			System.out.println("3です");
			break;
		case 4:
			System.out.println("4です");
			break;
		case 5:
			System.out.println("5です");
			break;
		default:
			System.out.println("それ以外の値です");
		}
	}
}
【実行結果】
5です

変数aの値と等しい定数値の処理が実施されていることが分かると思います。

そしてbreak文を記載したことで、defaultの処理は実施されることはありませんでした。

まとめ

本記事では条件分岐について下記項目で解説してきました。

  • if文とは?
  • switch文とは?

条件分岐を使用できるようになると、今までできなかった処理を実施できるようになります。

またOracle認定資格のJava Bronzeでも試験問題として出題されるので、試験を受けようと考えている方はぜひこの機会にマスターして合格を目指してください。

Oracle認定資格のJava Bronzeの勉強法については下記記事を参考にしてください。

Java Bronze 記憶に残る勉強法 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)

以上で今回の解説は終了となります。

コメント

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