【Java】if文の基本的な使い方をサンプルコードで解説
ズバット引越し比較
Posted on 2021/12/09 at 5:20
Javaに限らずプログラミング言語全てに共通する処理で、いわゆる条件分岐という処理を行うための構文です。
プログラミングを始めたらまずここからといっても過言ではないif文についての基本的な書き方を解説します。
目次
Java if文の基本
if (条件式) {
処理1
} else {
処理2
}
1行目のif文の()の中は条件式と言われる部分で比較演算子、論理演算子を使用します。この条件式を満たす(true)場合、{}の中の処理1を実行します。条件式を満たさない(false)場合、 elseがあればその中の処理2を実行します。
Javaで使用される比較演算子
a == b | aとbは等しい |
a != b | aとbは等しくない |
a < b | aはbより少ない(b未満) |
a > b | aはbより大きい |
a <= b | aはb以下 |
a >= b | aはb以上 |
Javaで使用される論理演算子
a && b | aとb共に真(true) |
a || b | aまたはb少なくともどちらかが真(true) |
!a | aが偽(false) |
if else文の書き方
int a = 1;
if (a == 1) {
System.out.println("aは1です");
} else {
System.out.println("aは1ではありません");
}
条件式であるa==1がtrueとなるため3行目が実行され、コンソールに「aは1です」と表示されます。
if文 {}の省略
if文の処理が1行の場合は{}を省略して書くことが可能です。上記サンプルコードは以下のように書き換えることができます。
int a = 1;
if (a == 1)
System.out.println("aは1です");
else
System.out.println("aは1ではありません");
実際にプログラムを書いていくと時には何千行とかになるため、省略できるときはなるべく省略して書くとコードがすっきりすると思います。
また、三項演算子を用いて以下のように書くことも可能です。
int a = 1;
String result = (a == 1) ? "aは1です" : "aは1ではありません";
System.out.println(result);
三項演算子は「条件式 ? trueの場合の戻り値 : falseの場合の戻り値」という書き方をします。 なのでサンプルコードでは何も返さない標準出力は書けないため、結果として文字列を返してresult変数に格納、 そして最後にSystem.out.printで結果を出力しています。
フリーのライブラリのソースコードを読んだりする時、三項演算子を用いたコードが出てくるので基本構文を押さえておけば問題ないと思います。
if else文ののネスト(入れ子)
int a = 1;
int b = 2;
if (a == 1) {
if (b != 2) {
System.out.println("aは1で、bは2ではありません");
} else {
System.out.println("aは1で、bは2です");
}
} else {
if (b != 2) {
System.out.println("aは1ではなく、bは2ではありません");
} else {
System.out.println("aは1ではなく、bは2です");
}
}
サンプルコードのようにif文の中にさらにif文を入れ子にして、複数の条件を分岐させることが可能です。 「aは1で、bは2です」という結果が出力されます。
AND(&&)論理演算子を使った書き方
int a = 1;
int b = 2;
if (a == 1 && b == 2) {
System.out.println("a==1かつb==2です");
} else {
System.out.println("aが1以外もしくはbが2以外です");
}
サンプルコードの「条件式1 && 条件式2」は条件式1と条件式2がどちらもtrueのときにtrueとなります。 else部分はその否定となりますので、条件式1、条件式2のどちらかがfalseであればtrueとなります。
上記サンプルは「a==1かつb==2です」という結果が出力されます。
OR(||)論理演算子を使った書き方
int a = 2;
int b = 3;
if (a == 1 || b == 2) {
System.out.println("a==1またはb==2です");
} else {
System.out.println("aは1以外かつbも2以外です");
}
サンプルコードの「条件式1 || 条件式2」は条件式1と条件式2のどちらか一方がtrueのときにtrueとなります。 else部分はその否定となりますので、条件式1、条件式2のどちもfalseであればtrueとなります。
上記サンプルは「aは1以外かつbも2以外です」という結果が出力されます。
まとめ
プログラミングは実際にやってみるとわかると思いますが、if文の連続です。書き方によっては処理が複雑になってしまい、私の場合バグの原因になってしまうことも多々あります・・・。
プログラミングを始める前に勉強するのも大事ですが、私はまずは何か作ってみコーディングしながら学んでいくことをおすすめします。 最初はわからないことだらけで大変ですが、そこを乗り越えてひとつアプリケーションを完成させたときはなんとも言えない達成感を味わえるはずです。
これを見てJavaに興味を持っていただければ幸いです。