Java プログラム

【Javaの基礎知識】ifとswitchによる条件分岐を理解しよう!

2020年4月13日

Javaでプログラムを練習する中で、「条件分岐」は欠かすことができません。そもそも、条件分岐とはどういったものでしょうか?そして、Javaではどうやって使えばよいのでしょうか?

この記事では、ifとswitchによる条件分岐について、詳細に解説します。

条件分岐とは?

まず、条件分岐について理解しましょう。

条件分岐とはその字面通り、「特定の条件に合わせて、処理を分岐すること」です。例えば、学校の成績の集計を思い出してください。あなたは今、期末テストの採点をし終わりました。

テストの結果を集計し、平均点未満を赤点とする場合を考えましょう。

このとき、「学生が平均点未満か否か」判断が必要です。これを「条件」といい、条件に合わせて処理を変えることを「条件分岐」といいます。

Javaの条件式(演算子)と真偽値

Javaの条件は「条件式(演算子)」で表します。そして条件式の結果は、必ず真偽値になります。「真偽値」とは、条件の結果が正しい場合を「真」(true)、条件の結果が異なる場合を「偽」(false)と表すものです。

比較演算子

比較演算子は、右辺と左辺の値を比較する演算子です。

比較演算子 使用例 意味
== a == b aとbは等しい
!= a != b

aとbは等しくない

> a > b  aはbより大きい
>= a >= b aはb以上
< a < b aはbより小さい
<= a <= b aはb未満

論理演算子

論理演算子は、複数の条件を組み合わせることができる演算子です。

論理演算子 使用例 意味
&& a == b aとbが両方とも「真」だったら「true」、それ以外は「false」
|| a || b aとbのいずれか、もしくは両方とも「真」だったら「true」、それ以外は「false」
! a ! b

条件が「真」だったら「false」に、「偽」だったら「true」にする(「!」は条件が逆になる演算子)

条件分岐はifとswitchと三項演算子

それでは、具体的にJavaの条件分岐を使ってみましょう。

Javaの条件分岐には3つの方法があります。

条件分岐には3つの方法

  • if
  • switch
  • 三項演算子(今回は説明を省きます)

特に、よく使われるのがifとswitchです。これらは、「ifステートメント」や「switchステートメント」、「switch/caseステートメント」などと言われることもあります。

最後の三項演算子は、使用頻度は高くありませんので、今回は説明を省きます。中級者や上級者にステップアップするときに覚えると良いでしょう。

ifステートメントによる条件分岐-基本の形

aさん30点、bさん50点、cさん70点。3人の平均点を求め、aさんが平均点以下なら赤点と出す例

まず、Javaの条件分岐で最も基本となるのは「ifステートメント」です。

指定した条件に当てはまる際に、特定の処理を行えます。

if条件{
  処理内容1
  処理内容2
  :
}

ココがポイント

  • ifの直後に書く条件は、必ず半角丸カッコ()で囲む
  • 処理内容は何行でも書けるが、1行に1つの処理を書き、行末に半角セミコロン(;)を置く
  • 処理内容を書く場合は、必ず「インデント」する

特に、Javaのプログラムでは「インデント」(字下げ)がとても大切です。

インデントとは、処理のまとまりを見やすく&わかりやすくするために、波括弧で囲まれた範囲の行頭に、半角スペースやタブ文字を入れて字下げをすることです。

インデントがおかしいと、プログラムがとても読みにくくなります。また、場合によっては他者から非難されることもある、大切なポイントです。

脱初心者のためにも、必ず「ifの波括弧で囲まれた範囲はインデントする」ことを習慣づけましょう。

[Main.java]

注意ポイント

変数「var」について
Java 10では、ローカル変数時のvarを用いた型推論が使用可能になりました。簡単に言えば、変数利用時に型を意識せずに「var」を使って型宣言ができる機能です。
java 10以前の方は「int」「float」等の型を明確に指定する必要があります。

java10以前の型宣言のコードは下記の様になります。

コンソール

平均点50.0
赤点

メモ

java10以降、明示的に型を宣言する必要がなくなったことは大変便利なのですが、商用プロジェクトにおいては、既存のjavaプログラムは、ほぼ100%と言ってもいいほどjava10以前に書かれていることが殆どです。
思わぬトラブルを起こさないためにも、きちんと型の理解はしておきましょう。

サイコロゲームとelse

Javaの習得は「習うより慣れろ」が一番の早道です。
ここからは、実際にコードを手で入力しながら覚えていきましょう。

Javaでサイコロゲームを作った。サイコロの出目が1なら大当たり!

サイコロの出目が1と異なる場合はハズレ。

プログラムによっては、1つの条件に当てはまる場合と、それ以外の場合で処理を分けたいことがあるでしょう。

条件に当てはまる場合アクション1を実行し、当てはまらない場合elseで指定されたアクション2を実行します。

if (条件) {
  アクション1;
  :
} else {
  アクション2;
  :
}

[ Main.java ]

BMIの判定とelse if

体重と身長を指定すると、BMIを計算してくれる。60kg172cmは普通。

80kg172cmは肥満。

50kg172cmは痩せ型。

場合によっては、条件が2つよりも多いことがあります。その際は「else ifステートメント」を用いることで、条件分岐を複数記述できます。なお、「else」と「if」の間には、半角スペースを必ず入れます。

if (条件) {
  アクション1;
  :
} else if (条件2) {  👈 必要な数だけ「条件3」「条件4」と条件文を足していく
  アクション2;
  :
} else {
  アクション3;
  :
}

[ Main.java ]

switch caseステートメントによる条件分岐

サイコロの出目に合わせて占い結果を出す例。

次に、「switchステートメント」による条件分岐を解説します。switchは、以下に示す条件に合致する場合に使用します。

Case文の条件

  • 条件分岐には3つの方法
  • 1つの要素が別の要素に対応できる場合

例えば、サイコロを振って、その出目を元に占いをする例を考えましょう。

  • 出目が1:大吉
  • 出目が2:中吉
  • 出目が3:吉
  • 出目が4:末吉
  • 出目が5:凶
  • 出目が6:大凶

これは見たら分かる通り、サイコロの出目一つ一つの要素が、別の占いの一つ一つの結果に対応できます。このような条件分岐で使用するのが、switchです。

switch(変数) {
  case 状態1:
    状態1の処理;
    break;
  case 状態2:
    状態2の処理;
    break:
  case ~
    ~;
    break:
  default:
    条件に当てはまらない時の処理;
    break;
}

ココがポイント

基本的にswitchが使用できる箇所では「if~else if~else」を用いるよりも適切な場合が多いと覚えておきましょう。

  • switchの方が記述がシンプルになりやすい
  • switchの方が可読性(読みやすさ)が高くなりやすい
  • switchなら前後の条件に影響されないため、分かりやすい

「if~else if~else」と「switch/case」とを書き比べ場合、switchの方が読みやすいです。

[ Main.java ]

まとめ

まとめ

条件分岐はプログラムを書く上で基本的な事項です。

今回の内容を復習し、分からない点が無いか再確認しましょう。

条件分岐のポイント

  • Javaには3つの条件分岐の方法があるが、主にifステートメントとswitchステートメントを使う
  • Javaの条件は条件式で記述し、条件式の結果は必ず真偽値になる
  • 「if」は一つの条件で分岐ができる
  • 「if~else」の形式で、で一つの条件とそれ以外の条件で分岐ができる
  • 「if~else if~else」の形式で、複数の条件で分岐ができる
  • ただし、「一つ一つの要素が別の一つ一つの要素へ対応できる」場合は、「switch~case~default」を使用する方が適することが多い

よく読まれている記事

1

独立前は、誰もが不安でいっぱい。近い将来、フリーランスとして独立を考えている方が独立初期に躓かないために「独立前にやるべきことチェックリスト」をご紹介します。 当記事は前編となる「お金まわり編」。全て ...

2

ゲームなどのエンタメ分野での導入が進んでいるVR。言葉自体は耳にしたことがあっても、その意味を詳しく知らないという人も多いのではないでしょうか。また、次世代の新たな技術をビジネスに積極的に活用していく ...

3

フリーランスの確定申告には、青色申告と白色申告の2種類があります。いったいどちらの申告方法を選ぶべきなのでしょうか。 この記事では、青色申告と白色申告、それぞれのメリット・デメリットを把握することでベ ...

4

フリーランスの仕事場は、自宅をはじめとし、カフェや図書館、コワーキングスペースなど自由に選べます。しかし全ての場所で100%集中ができるどうかは、人それぞれです。どのような環境が自身の仕事場として快適 ...

5

フリーランスのITエンジニアとして、一番難しいのは「自己管理」と言えるでしょう。 自分の体調管理はもとより、仕事のスケジュール等すべて自分で管理します。もちろんフリーランスに有給休暇等ありませんから休 ...

-Java プログラム

Copyright© Beエンジニア , 2020 All Rights Reserved.