第4章 条件分岐

この章では JAVA の条件分岐について説明します。

HOMEPAGE

条件分岐


条件分岐とはプログラム中で、ある条件が満たされているかどうかによって次に実行するプログラム上の位置を変化させること。です。
Java言語の中で条件分岐を行う場合には、if文やswitch文を使います。


処理の分岐

if文は、条件を指定し、「もしも○○ならば◇◇を実行するが、そうでなければ△△を実行する」というように、2つに場合分けする構文です。
if文は以下のように、関係式で作成した条件が true か false かで処理を分けることができます。
また、いくつもの関係式を並べて細かく分けることもできます。
3つ以上に分けたいときは、else と書かずに、下の例:7行目のように if else と書いて、場合分けを追加します。

if (関係式/条件) {
関係式がtrueの時に実行する処理;
} else {
関係式がfalseの時に実行する処理;
}
例:[JSample4_1.java]
package JSample;
public class JSample4_1 {
	public static void main(String[] args) {
		int number = 10;
		if (number == 0) {
			System.out.println("0です");
		} else if (number> 0){
			System.out.println("正です");
		} else {
			System.out.println("負です");
			
		}
	}
}
実行結果
正です

上の例では、場合分けの条件は5行目、7行目、9行目の3つです。
それぞれ int型の変数 number が、0の場合(5行目)、0より大きい場合(7行目)、0より小さい場合、(9行目)の場合分けによってその後の指示が異なります。
この例では、 number に10が代入されているため、7行目の場合分けに該当し、「正です」と出力するという指示が実行されます。

switch文は、「10だったら○○、20だったら△△、・・・」のように、値で条件を指定する構文です。
if文のように関係式で条件を指定することはできません。

switch (式) {
	case 値1:
	命令文1
	break;

	case 値2:
	命令文2
	break;

	default:
	命令文3
	(break;)→最後のbreakだけは省略できる。
}

例:[JSample4_2.java]
package JSample;
import java.util.Scanner;
public class JSample4_2{
	public static void main(String[] args){
		System.out.println("キーボードから数値を入力してください。");
		scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		
		switch (num){
			case 1:
				System.out.println("満足");
				break;
			case 2:
				System.out.println("どちらとも言えない");
				break;
			case 3:
				System.out.println("不満");
				break
		}
	}
}

実行結果("2"と入力した場合)
キーボードから数値を入力してください。
>2
どちらとも言えない

上の例では、場合分けの条件は9行目、13行目、16行目の3つです。
それぞれ int型の変数 num に代入された数字が、1の場合(13行目)、2の場合(13行目)、3の場合、(16行目)の場合分けによってその後の指示が異なります。
この例では、 num に2が代入されているため、13行目の場合分けに該当し、「どちらとも言えない」と出力するという指示が実行されます。

6行目のscan.nextInt()メソッドは数値を入力するためによく使用されます。
上の例では、int型の変数 num にキーボードで入力した数字を代入する、という指示になります。


練習

if文を使って、学生のポイントを入力し60以上かどうかを判断してください。
問題[JEx4_1.java]

public class JEx4_1 {
   public static void main(String[] args){
   if{
   "点数入力してください"を出力
   int score
   score>=60の場合、"点数はscore合格です"を出力
   上記以外、"点数はscore不合格です"を出力
   }
}



問題[JEx4_2.java]
switch文を使って、何月かを入力し、表のようにその季節を表示するプログラムを作成してください。
季節
3、4、5
6、7、8
9、10、11
12、1、2


戻る