Java入門5 if~else文による条件分岐

Java入門の第5回です。前回からの続きですが、今回だけでも分かる内容になっています。

ここからの数回は、Javaプログラミングの文法について解説していきます。今回はif~else文による条件分岐です。

if文で条件分岐

if文は、条件分岐を行う際に使用します。条件分岐とは、条件によって分岐させて実行する処理を振り分けるということです。if文を使うと「もし条件を満たすなら、処理内容を実行しなさい」という指定ができます。

if文の構文は以下の通りです。

if(条件) {
  処理内容
}

サンプルコードで動作確認

サンプルコードを作成して、実際に動作確認してみましょう。

まずは、Eclipse上で クラスを新規作成します。Eclipseでクラスを新規作成するには、メニューから [ファイル] → [新規] → [クラス] と選択します。 すると、以下の画面が表示されます。クラスの新規作成はこれで3回目ですが、そろそろ操作を覚えてきたのではないでしょうか。クラス名は「Test3」とします。

今回は、【どのメソッド・スタブを作成しますか?】のなかの public static void main(String[] args)(V) の項目にチェックを付けてから、[完了]ボタンを押してみます。

すると、以下のように public static void main(String[] args) {} というお決まりの書式が、最初から記述された状態でJavaクラスのひな型が用意されます。 メソッド・スタブというのは、メソッドが動作するように記述するものです。

public static void main(String[] args) {} の意味については、少しずつ説明していきますが、現時点ではメソッドを動作させるために必要な、お決まりの書式と思っておいてください。

「// TODO 自動生成されたメソッド・スタブ」の行はプログラムに影響しないコメントなので、削除して構いません。

if文のサンプルコード

では、if文のサンプルコードを作成してみましょう。Test3.javaを以下のように書き換えます。

public class Test3 {
	public static void main(String[] args) {
		int score;
		score = 80;
		if(score >= 60) {
			System.out.println("合格です");
		}
	}
}

コードが入力できたら、Eclipseメニューの実行ボタンから[実行] → [Javaアプリケーション]を選択します。コンソールに「合格です」と表示されれば成功です。

あらためて、入力したコードの内容を確認してみましょう。

public class Test3 {
	public static void main(String[] args) {
		int score;    //変数の宣言
		score = 80;    //変数への値の代入
		//scoreが60以上なら「合格です」と表示しなさい
		if(score >= 60) {
			System.out.println("合格です");
		}
	}
}

変数scoreをint型として宣言して、scoreに「80」という値を代入しています。変数については前回解説していますので、よろしければご確認ください。

次に、if文を使って 「 scoreが60以上なら「合格です」と表示しなさい」という指定をしています。

score >= 60 のところで使用している >= は「大なりイコール」と読み、「左の値が右の値以上」という意味です。これは、関係演算子と呼ばれるもののひとつで、左右の値を比較する際に使用します。

else文を使って条件を満たさない場合の処理を指定する

if文を使うと、条件を満たす場合の処理を指定できます。さらに、elseを追加すると、条件を満たさない場合の処理を指定できます。

if~elseの構文は以下の通りです。もし条件を満たすなら処理Aを実行しなさい、さもなければ処理Bを実行しないという指定になります。

if(条件) {
  処理A
} else {
  処理B
}

以下は、if~else文を使った実例です。

public class Test4 {
	public static void main(String[] args) {
		int score;    //変数の宣言
		score = 50;    //変数への値の代入
		/*
		scoreが60以上なら「合格です」と表示しなさい
		さもなければ「再試験です」と表示しなさい
		*/
		if(score >= 60) {
			System.out.println("合格です");
		} else {
			System.out.println("再試験です");
		}
	}
}

上記コードは、scoreが60以上なら「合格です」と表示しなさい、さもなければ「再試験です」と表示しなさいと指定しています。

今回は score の値に50を代入しているので、上記コードを実行するとコンソールに「再試験です」と表示されます。

三項演算子

if文で条件分岐をする場合、例えば以下のように記述します。

if(score >= 60) {
	kekka = "合格です";
} else {
	kekka = "再試験です";
}

上記サンプルでは、if文を使って変数scoreの値が60以上かどうかで変数kekkaに代入するテキスト内容を振り分けています。上記と同じ結果となるプログラムを「三項演算子」という形式でも記述できます。

kekka = (score >= 60) ? "合格です" : "再試験です";

以下は、if文の場合の実行結果画面です。

以下は、三項演算子の場合の実行結果画面です。

if文のコード例も参考演算子のコード例もプログラムで指定している内容は同じですが、if文の代わりに三項演算子を使うとコードを短くできます。直感的に分かりやすいのはif文かもしれませんが、慣れてくると三項演算子のほうがコードがスッキリして見やすいかもしれません。

三項演算子は、中上級者の書いたコードによく登場します。自分自身が三項演算子を使わないまでも、知識として知っておくと他の人が書いたコードを参照する際に役立つでしょう。

次回へ続きます。