Javaのif~elseを初心者向けにわかりやすく解説!書き方・演算子・ネストを即理解できる!

Javaのif~elseを初心者向けにわかりやすく解説!書き方・演算子・ネストを即理解できる!

プログラミング言語Javaにおけるif文の使い方・書き方についてJava初心者向けに解説します。

if文を使えば、条件分岐を実装できます。条件分岐はプログラミングの中でも基本事項の一つですので必ず理解しておきましょう!

本記事では、if文の基本的な書き方・else if・重要な演算子(or・and)・ネスト(入れ子)について、具体的なソースコードを交えて解説していきます。

本記事を読み終える頃には、Java if文の基礎が理解できているでしょう。

ぜひ最後まで読んで、Java if文を理解してください。

Java if文の書き方

まずはif文の基本的な書き方から解説していきます。Javaでのif文は、以下のように書きます。

例えば、以下のソースコードを考えてみましょう。

【出力結果】

まず、

というソースコードで変数numに5を代入しています。

そして、if文の条件式でnumが5に等しいかどうかを判定しています。(「=(イコール)」が2つ付くことに注意してください。)

今回は、numが5に等しいので、

という処理が実行されます。

もし、変数numが5以外(10や90など)の場合は、

という処理が実行されることになります。

条件式には、「==」以外にも「<」や「>=」、「!=」などの比較演算子を利用します。

詳しくは、Javaの比較演算子についてまとめているページをご覧ください。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Java if〜elseで条件分岐してみよう

Java if文での学習では、「else」の学習も欠かせません。本章では、「if〜else」について学んでいきましょう。

elseを使えば、より多くの条件分岐を行うことができます。

まずは以下のソースコードをご覧ください。

【出力結果】

まず、

というソースコードで変数numに15を代入しています。

そして、まず1つ目の条件式

で変数numが5に等しいかどうかを判定します。今回、変数numは15なので、この条件式は偽(false)となり、

は実行されません。そして、2つ目の条件式からは「else if」となります。else ifは前段の条件式が偽となった場合に実行されるif文です。

で変数numが15に等しいかどうかを判定します。これは真(true)なので、

が実行されてプログラムは終了します。

もしも、変数numが5でも15でもない場合には、「else」以下の処理が実行されます。elseはif文やif else文の条件に該当しない場合に実行されるものです。

以上のように、if文に「else」を付け加えることでより多くの条件分岐を行うことができます。

 

Java if文で条件式を組み合わせる(OR/論理和)

先ほどまでのif文の条件式は、「〇〇が××に等しければ」などでした。

しかし、if文の条件式では、「〇〇が5以上、または××が20以下ならば」(英語でORに相当する)のように組み合わせることもできます。

例えば、

という条件式は、「『変数num1が10より大きい』または『変数num2が50より小さい』」という2つの条件式を組み合わせたものです。どちらかの条件式が真(true)の場合に全体の条件式は真(true)を返します。

「または(OR)」に相当する部分が「||」であり、論理和と呼ばれています。

では、具体的なソースコードを見てみましょう。

【出力結果】

「num1<5」は偽(false)で、「num2>20」は真(true)です。

「||(論理和)」はどちらか一方が真(true)であれば条件式全体として真(true)になるので、今回の場合は条件式全体が真(true)となります。

よって、

「num1<5」は偽(false)で、「num2>20」は真(true)ですね。

よって、

が実行されるというわけです。

Java if文における「||(論理和)」は英語の「OR」に相当することを覚えておきましょう!

 

Java if文で条件式を組み合わせる(AND/論理積)

if文には、「&&(論理積)」という演算子もあります。

「&&(論理積)」は「||(論理和)」と違い、条件式内の左辺と右辺の両方が真(true)にならなければ条件式全体が真(true)になりません。

「&&(論理積)」は英語の「AND」に相当します。

では、先程のコードから論理演算子のみ変更した具体的なソースコードを見比べてみましょう。

【出力結果】

num1=10ですので、条件式の「num1<5」は偽(false)です。

num2=30ですので、条件式の「num2>20」は真(true)です。

「||(論理和)」では片方でも真(true)があれば、全体の条件式も真(true)になりましたが、「&&(論理積)」ではすべての条件式が真(true)にならなければなりません。

そのため、

が実行されます。

もし、

といった場合には、「num1 < 15」が真(true)なので条件式全体としては真 (true)になります。

「&&(論理積)」と「||(論理和)」の違いは注意してください。

 

Javaでネスト(入れ子)したif文の使い方

if文はネスト(入れ子)で利用することもできます。ネストとは、if文の中にif文が入っている状態を表す構造です。ネストは複雑な条件式を実現する際に利用され、プログラミングの世界では頻繁に登場します。

実際に具体的なソースコードの例として、次のソースコードを見てみましょう。

【出力結果】

変数num1に10を代入し、最初のif文で「num1 > 15」と15よりも小さいかをチェックしています。結果は偽(false)となるため、else文が実行されてネストされているif文が実行されます。

こちらのif文では、num1は5よりも大きいため真(true)となり、「5~15の間」が出力されるわけです。

流れが少し複雑であるため、フローチャートを使って整理してみましょう。

Javaでネスト(入れ子)したif文のフローチャート

if文のあとに再度if文が登場していますね。しかし、ソースコード上ではif文の中にif文が入っているためネストであることがすぐに分かりますが、フローチャート上ではそうとも言い切れません。その理由としては、ネストせずに記載する方法があるからです。

if文をネストさせない書き方

先程の例でいえば、わざわざif文をネストせずともelse if文を使えば実装できます。

【出力結果】

また、「||(論理和)」や「&&(論理積)」も上手に使えば、ネストせずに複雑な条件式を実現可能です。ネストは複雑な条件式を実現できる反面、ソースコードの可読性が低下してバグを発生させる可能性があるなど、デメリットも存在します。

プログラミングの世界では頻繁に利用されますが、できるだけネストは避けて簡潔に条件分岐を実現しましょう。

 

プログラミング言語Javaを利用する上で、条件分岐を実装するif文は非常に重要です。この記事では、if文の書き方からif〜else、「||(論理和)」や「&&(論理積)」、「ネスト(入れ子)」について解説しました。

はじめは難しくとも、利用していくなかで少しずつ理解が深まるものです。if文を記載する際には、「もっと簡潔に記載できないか」を意識しながら進めていくと上達スピードが向上するでしょう。