Java『if文の書き方』条件式で処理を分岐する|論理演算子で複数条件を指定

Java≫if文の書き方≫条件式で処理を分岐する_論理演算子で複数条件を指定 Javaプログラミング入門

【本サイトではGoogleアドセンス、または、アフィリエイト広告を利用しています。】

if文の書き方

if文とは、プログラムで条件分岐を行う時に使う構文です。

複雑な処理にはいろいろなパターンが発生するので、分岐が必要です。
if文がないと、プログラムはまっすぐな1本道になってしまいます。

 分かれ道に立つ人

使わないプログラムはほとんどないと言えるぐらい大切なものなので
ここで使い方をマスターしておきましょう!

if文が何たるかということから知りたい人は、考え方と基本的な構成について、
以下で詳しく解説しています
ので、まずはこちらを読んでみてください!

Javaでのif文の書き方は以下です。

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

プログラムで例を書くとこんな感じです。
変数aはint型で、テストの点数を入れるとします。

if (a == 0) {
	System.out.println("0点!なんてこった!");
}
else if (a == 100) {
	System.out.println("100点!すごいぜ!");
}
else {
	System.out.println("よく頑張った!");
}

構文は「if」のワードから書き始めます。

続けて、条件式を「()」小括弧で囲みます
実行する処理は「{}」中括弧で囲みます

2つ目以降の条件は、先頭に「else」をつけます。

条件式の書き方については後述します。

ちなみに、「{}」中括弧で囲ったプログラムの範囲を
ブロックと呼ぶ
のであわせて覚えておきましょう。

また、ifの構文を2つ連続して書いた時と、elseを使って2つ書いた時に
どのように処理に差が出るのか?
ということについても、

こちらに詳しく書いていますのでぜひ読んでみてください!

関係演算子とは?種類は?

ここで、if文の条件式を書く時に必要となる関係演算子についてお話をします。

関係演算子とは、2つの値を比較する時に使う演算子です。

関係演算子の種類を一覧にしてみました。

関係演算子説明
==左辺と右辺が等しい。
<左辺が右辺より小さい。
>左辺が右辺より大きい。
<=左辺が右辺以下。
>=左辺が右辺以上。
!=左辺と右辺が等しくない。

関係演算子は主に数値の比較で使います。

日付や文字列の比較に関係演算子を使うと、想定と違う結果が出ることがあり、
比較用に別途方法が用意されている
ので、使いどころに注意しましょう!

関係演算子を使って条件式を書く方法

関係演算子を使って条件式を書くと以下のようになります!
変数aとbはint型とします。

// aとbが等しい
a == b

// aがbより小さい
a < b

// aがbより大きい
a > b

// aがb以下
a <= b

// aがb以上
a >= b

// aとbが等しくない
a != b

また、このプログラムは条件式だけ抜き出して書いたものなので、
単独では実行できません。

条件式としてプログラムの中に組み込んで初めて動作する
ものなのでご注意ください。

また、条件式はboolean型を返す(正しい時はtrue、違う時はfalse)ので、
if文の中以外でも、こういった使い方ができます。

int a = 0;
int b = 1;
boolean result;

// 判定結果を変数resultに入れる
result = a > b;

aにはbよりも小さい数値が入っているので、このプログラムを実行すると、
判定結果resultには「false」の値が入ります。

論理演算子とは?種類は?

次に、論理演算子についてお話をします。

論理演算子とは、主に複数の条件式を組みあわせた場合の
判定を行う時に使う演算子
です。

if文の条件式に複数条件を指定する場合に必要となります。

論理演算子の種類を一覧にしてみました。

論理演算子説明
&&左辺と右辺が両方成立する場合にtrueの判定を行います。
日本語では「かつ」という言葉が使われます。
||左辺と右辺のどちらかが成立する場合にtrueの判定を行います。
日本語では「または」という言葉が使われます。
!1つの条件式の先頭に付加して使います。
条件式が成立する時、反対のfalseの判定をします。
日本語では「以外」という言葉が使われます。

論理演算子も、関係演算子と同様に、if文の中だけでなく、
boolean型の変数に関係演算子を使った条件式を代入することで
結果を入れることができます。

論理演算子を使って複数の条件を指定する方法

論理演算子を使った条件式をプログラムで書くとこのようになります!
変数a、b、cはそれぞれint型の整数とします。

// aとbが等しい、かつ、aとcが等しい
(a == b) && (a == c)

// aがbより小さい、または、aがcより大きい
(a < b) || (a > c)

// aがbと等しい時以外
!(a == b)

上の2つについては、各条件式を囲っている
「()」(丸括弧)をつけなくても結果は同じです。

// aとbが等しい、かつ、aとcが等しい
a == b && a == c

// aがbより小さい、または、aがcより大きい
a < b || a > c

ただ、このように書くと、条件式を見分けにくくなるので、
可読性も考えて、条件式にはなるべく丸括弧をつけるクセをつけておきましょう!

以下のように3つ以上の条件を指定することもできます。

// aがbより小さい、かつ、aがcより小さい、かつ、bとcが等しくない
(a < b) && (a < c) && (b != c)

// 丸括弧をつけなくても、動作は同じです
a < b && a < c && b != c

また、論理演算子を使って複数の条件式を並べた場合、
プログラムとしては左の条件式から順番に評価されていくことになります。

if文を使ったサンプルコード

では、ここまでの内容を踏まえて、if文のサンプルコードの紹介です。
のび太くんがテストをママに見せた時の反応を作ってみました。

resultの値をいろいろ自分で変えてどんな結果になるか試してみましょう!

package example;

public class Example {
	public static void main(String[] args) {

		// テストの点数
		int result = 0;

		// 0点の時
		if (result == 0) {

			System.out.println("のーびー太ぁぁぁぁーーー!");
		}
		// 100点の時
		else if (result == 100) {

			System.out.println("まあ!のびちゃまー!");
		}
		// 1~49点の時
		else if (result > 0 && result < 50) {

			System.out.println("のび太!");
		}
		// 50~99点の時
		else if (result >= 50 && result <= 99) {

			System.out.println("がんばったわね!");
		}
		// 上記以外の時(マイナス値)
		else {

			System.out.println("ドラえも~ん!!");
		}
	}
}

条件式にboolean型の変数を使う

if文に指定する条件式は、式だけでなく、以下のように
boolean型の変数を直接使って指定することもできます。

package example;

public class Example {
	public static void main(String[] args) {

		// テストの合否
		boolean result = true;

		if (result) {

			System.out.println("合格だ!");

		} else {

			System.out.println("なんてこった!");
		}
	}
}

条件式を明確に書くと「result == true」ですが、
booleanの値を持つ変数に限っては、式を省略することができます

複数の条件を指定する時も、式と同様に、
変数を「&&」や「||」でつなぐだけで条件式として認識されます。

package example;

public class Example {
	public static void main(String[] args) {

		// 数学テストの合否
		boolean resultMath = true;
		// 英語テストの合否
		boolean resultEnglish = true;

		if (resultMath && resultEnglish) {

			System.out.println("どっちも合格だ!");

		} else {

			System.out.println("なんてこった!");
		}
	}
}

また、否定を表現する時は、変数の前に「!」をつけます
上記の例で言えば以下のように書くことで、反対のboolean値を取ることができます。

// 値がtrueの場合、falseを示す
!result

三項演算子とは?書き方と使い方

if文と同様に条件判定をする方法として三項演算子というものがあります。

三項演算子とは、条件式による判定処理を省略して1行で書く為の構文です。
書き方は以下です。

条件式 ? 判定がtrueの場合の値 : 判定がfalseの場合の値

このように、条件式、判定が真の場合の処理、判定が偽の場合の処理の
3つの項目が登場するのでこのような名前になっています。

先ほどの合否判定のサンプルコードを三項演算子で書き換えるとこうなります。

package example;

public class Example {
	public static void main(String[] args) {

		// テストの合否
		boolean result = true;

		System.out.println(result ? "合格だ!" : "なんてこった!");
	}
}

とてもシンプルになりました!

見た目がスッキリしますが、条件式が複雑になってくると
メンテナンス性に欠ける部分もあるので、使いどころには気をつけてください。

まとめ

if文の使い方として、今回お話した内容は以下です。

・if文の書き方

・関係演算子について

・関係演算子を使った条件式の書き方

・論理演算子について

・論理演算子を使った複数条件の指定方法

・条件式にboolean型の変数を使う方法

・三項演算子の使い方

コードを書く練習として、日常の生活を思い浮かべて、
そのシーンをそのままif文に
してみましょう!

次回は、switch文の書き方についてお話をします!

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