【Java入門】if文で条件分岐をしてみよう!

投稿日: 作成:   更新:

Javaのif 文について解説します。

この記事は次の内容をプログラミング初心者の方向けに書きました。

  • if文の基本的な書き方
  • if文の処理フローのイメージについて

プログラミングはソースコードを書くだけではなく、処理フロー図のイメージができると「どう動かしたいか」を明確にできます。

まずは「if文とは」の部分だけ理解いただければと思います。

それでは行きましょう!

if文とは

if文は条件によって処理を分けて行うときに使用します。
if文の条件には比較演算子(==、!= など)、論理演算子(&&、|| など)を使用して分岐させます。

if文の処理フロー図

if文の処理イメージをフロー図を使って描いてみます。

if文のソースコードで頭が混乱したときは、こちらの処理フロー図に表してからソースコードを書くことでスッキリとしたコードを書くことができます。(手書きでOKです)

どうですか?
処理のイメージはできましたか?

後ほど「if – elseif – else で書いてみる」のところで、この処理フロー図を実際のソースコードに書いてみます。

if – else で書いてみる

まず始めに if – else のソースコードを記載してみます。
変数の値が同じか判定するときは「==」演算子を使用します。

String value = "123";

if (value == "123") {
    System.out.println("123を発見!");
} else {
    System.out.println("123は見つからなかった・・");
}

実行結果:

このソースコードでは、if で「123」かどうかを判定して、値が同じなため「123を発見!」を出力しています。(始めに変数に「123」を格納しているので当然ですが・・・)

if – elseif – else で書いてみる

次にif – elseif – elseのソースコードを書いてみます。
こちらは「if文とは」に書きました処理フロー図をソースコードで表したものになります。

※文字列を比較するときは「equals」関数を使用します。
(この比較方法はJava特有ですね)

String value = "イチゴ";

if (value.equals("バナナ")) {
    System.out.println("バナナを発見!");

} else if (value.equals("イチゴ")) {
    System.out.println("イチゴを発見!");

} else {
    System.out.println("果物は見つからなかった・・・");
}

実行結果:

if 文で「バナナ」かどうかを判定して、値が異なるため次の else if で「イチゴ」と判定されたため「イチゴを発見!」を出力しています。

if文の入れ子

if 文の中にさらにif 文を書くことができます。
このことを「if文の入れ子」と言います。

次のソースコードでは、燃料「90」が入っている変数に対して、どのくらい燃料が入っているのか燃料メーターに表示します。

// 燃料が90入っている
Integer fuel = 90;

// 燃料メーターの表示
if (fuel > 50) {
    if (fuel == 100) {
        System.out.println("満タン");
    } else {
        System.out.println("50 ~ 99の間");
    }
} else {
    System.out.println("50未満");
}

実行結果:

「if ($fuel > 50)」に一致して、「else if ($fuel == 100)」に一致しなかったので11行目の文字「50 ~ 99の間」を画面に出力します。

三項演算子を使ってみる

1つの条件で1つの変数へセットする場合、三項演算子を使用するとスッキリとしたソースコードが書けます。

//都道府県コードを指定
Integer prefCode = 13;

//都道府県名をセット
String prefName = "";
if (prefCode == 13) {
    prefName = "東京";

} else {
    prefName = "";
}

System.out.println(prefName);
//都道府県コードを指定
Integer prefCode = 13;

//都道府県名をセット(三項演算子で条件判定)
String prefName = (prefCode == 13) ? "東京" : "";

System.out.println(prefName);

実行結果:

どうですか?
後者の方がスッキリしてますね。

ただし、複数条件を三項演算子で条件分岐させるとソースコードが難解になるので注意が必要です。
「1つの条件で1つの変数へセットする場合」だけにとどめておいてください。

試しにif – elseif – else を三項演算子で表すとどうなるのかソースコードで表してみます。

まずは通常のif 文です。

//都道府県コードを指定
Integer prefCode = 13;

//都道府県名をセット
String prefName = "";
if (prefCode == 13) {
    prefName = "東京";

} else if (prefCode == 14) {
    prefName = "神奈川";

} else {
    prefName = "";
}

System.out.println(prefName);

上記と同じ内容を三項演算子で書いてみます。

//都道府県コードを指定
Integer prefCode = 13;

//都道府県名をセット(三項演算子で条件判定)
String prefName = (prefCode == 13) ? "東京" : ((prefCode == 14) ? "神奈川" : "");

System.out.println(prefName);

どうですか?
急にソースコードが難解になりましたね。

このようにソースコードが難解になりますので、三項演算子は「1つの条件で1つの変数へセット」させるように心がけましょう!

まとめ

Javaのif文について次の内容で解説しました。

  • if文とは
  • if – else で書いてみる
  • if – elseif – else で書いてみる
  • if 文の入れ子
  • 三項演算子を使ってみる

今回は紹介しませんでしたが、if 文は三項演算子だけでなく、{}を省略したり1行で書いたりとif 文の色んな書き方ができますので、人によってソースコードの書き方に癖が出てきやすいところであります。

ですので、if 文の条件分岐を書くときは、if 文の記述ルールを決めて書くのが良いですが、初心者の方は決められないと思いますので、自分が見やすいと思った書き方を模索しましょう。