【Java入門】if文で条件分岐(else、AND/OR、否定、省略、三項演算子)

こんにちは!フリーランスの長野です。

普段の生活の中でもどちらかの選択によって行動が変わってくることってありますよね。例えば、歩行者信号が青信号の場合は横断歩道を渡る。赤信号の場合は止まるなどです。

Javaのプログラミングでも条件によって、処理を変えなければならない場合はよくあります。そんな場合に使用するのがif文です。

この記事では、Javaのif文について

  • if文とは
  • if else文で条件が複数の場合の記述方法

という基本的な文の構造の説明から、

  • 論理演算子(OR・AND・NOT)の使い方
  • 比較演算子(等号・不等号)の使い
  • if else文を三項演算子で1行に省略する方法
  • if文のbreakやcontinueでループを制御する方法

などの条件を判断する方法についても解説していきます。

今回はif文について、使い方をわかりやすく解説します!

if文とは

if文は主に、2つの値の大小関係や、等しい・等しくないなどの条件により処理を変える場合に使われます。

大小関係や、等しい・等しくないなどの条件式が「true」の場合に{ }内の処理を行い、「false」の場合にはif文のブロック外に出るかもしくは「else」句の後の{ }内の処理を行います。

それに対して、switch文も条件によって処理を変える場合に使われますが、switch文の場合はたくさんの条件に分かれる場合に使われます。

例えば、サイコロの目は1から6までありますが、1から6までの出た目でそれぞれ処理が違う場合などです。2者の関係によって処理を変えるif文の使い方について、サンプルコードをみながら詳しく解説していきます。

if else文で条件が複数の場合の記述方法

if else文で複数の条件で処理を分ける場合についてみていきます。

条件とは一致しないそれ以外の場合を記述するときに「else」句を使用します。

if else文の基本的な使い方

下記のサンプルコードでは、4年に一度の「うるう年」かどうかの判定をしています。

実行結果:

このサンプルコードでは、西暦年数が4で割り切れる場合は「うるう年です」と、それ以外の場合は「うるう年ではありません」と表示します。

処理が1行の場合の{}の省略

if文の処理が1行の場合は、{}を省略して記述することができます。

先ほどの例も処理が1行ですので、以下のように省略して記述しても問題ありません。

実行結果:

if文の入れ子(ネスト)の使い方

if文の条件の中で、さらに条件を追加したい場合ってありますよね。これをif文の入れ子(ネスト)と言いますが、その記述方法についてみていきます。

先ほどの例に修正を加えます。「うるう年」と言えば、夏季オリンピックの開催年ですよね。

そしてオリンピックは冬季も開催されます。以下のサンプルコードでは、西暦年数でオリンピックの開催年かどうかの判断を追加しています。

実行結果:

論理演算子(OR・AND・NOT)の使い方

if文の条件式が2つ以上ある場合について、みていきましょう。

条件式が2つ以上ある場合は、「OR」「AND」といった論理演算子を使います。論理演算子には、次のようなモノがあります。

論理演算子の種類書き方例説明
ORA || BAもしくはBのどちらか一方が「true」であれば、「true」の値を返す。
A、Bどちらとも「false」の場合のみ、「false」の値を返す。
ANDA && BA、Bどちらとも「true」の場合のみ、「true」の値を返す。
AもしくはBのどちらか一方が「false」であれば、「false」の値を返す。
NOT!AAが「true」の場合「false」の値を返す。
「false」の場合「true」の値を返す。

それでは、実際の使い方をサンプルコードでみていきましょう。

実行結果:

このサンプルコードでは、まず西暦年数が4で割り切れるか、もしくは余りが2の場合にオリンピック開催年かどうか判断しています。「||」記号を使って2つの条件のどちらか一方を満たすか「OR」の判定を行っています。

次にオリンピック開催年でない場合の判断をするために、「!」記号を使って西暦年数が4で割り切れない、余りが2でないという「NOT」の判定を行っています。

さらに「&&」記号を使って2つの条件を共に満たすか「AND」の判定を行っています。

なお、「else」句の後には処理は何も記述していません。これでも問題になることはありません。

比較演算子(等号・不等号)の使い方

if文の条件式で必要になってくるのが、関係演算子です。

関係演算子は2つの値を比較します。比較とは、どちらの値が大きいか小さいか、等しいか等しくないか、など二者を比べることです。

関係演算子の例をまとめました。

 書き方例説明
不等号val1 < val2va1はval2より小さい
val1 <= val2vai1はval2以下
val1 > val2val1はval2より大きい
val1 >= val2val1はval2以上
等号val1 == val2val1はval2と等しい
val1 != val2val1はval2と等しくない
instanceofval1 instaceof val2val1はval2クラスのインスタンスかどうか
(val2はインターフェースや配列などの場合も含む)

これらが関係演算子と呼ばれるモノになります。比較が正しければ「true」を返し、間違っていれば「false」を返します。

等号・不等号については、よく見かけるかもしれません。instanceofについては、あまり見かける機会は少ないのかもしれません。

等号・不等とinstanceofとに分けて、順にサンプルコードをみていきます。

比較演算子(等号・不等号)の使い方

等号・不等号について、サンプルコードをみていきましょう。

オリンピックではスケートやサッカーのように競技連盟のルールにより、出場に年齢制限があります。それを例として、みていきましょう。

なお、等号のサンプルについては、前述のオリンピック開催年かどうかの判定を参考にしてくださいね。

実行結果:

instanceof演算子の使い方

instanceofは「new」句でインスタンス化されたオブジェクトの型を判定する演算子です。

インスタンス化されたオブジェクトと生成元のクラスや配列とが一致するかどうかを判定する場合に使います。instanceofの使い方について、サンプルコードをみていきましょう。

実行結果:

instanceof演算子の詳しい使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。

【Java入門】instanceof演算子で型を判定(クラス/インターフェース)
更新日 : 2019年4月16日

if-else文を三項演算子で1行に省略する方法

三項演算子を使うと、if-else文を1行に省略することができます。

三項演算子の使い方を次のプログラムで確認してみましょう。

実行結果:

このプログラムでは、条件式が「true(真)」のため左側の「Samurai」を返しています。

三項演算子の詳しい使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。

【Java入門】三項演算子でif文を簡潔に記述する方法
更新日 : 2019年7月27日

if文のbreakやcontinueでループを制御

if文中の「break」句「continue」句を使ってfor文のループを制御することができます。

詳しい使い方ははこちらの記事をを参考にしてください。

【3分で解決Java】for文のループ制御(breakとcontinue)
更新日 : 2019年4月4日

まとめ

ここでは、if文・if else文の使い方、論理演算子の使い方、関係演算子の使い方について説明しました。条件分けが必要な複雑な処理をするためには、if文を頻繁に使うことになるでしょう。

そんなときに条件や判定が複雑になりどのように記述してよいか、わからなくなる場合もあるかもしれません。

そんな場合はこの記事を何度も参考にして下さいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説