広告

手を動かして学ぶ Java入門 (if文)

環境構築不要! ブラウザから直接コードを実行できます。
本記事では、Java の if文 について学びます。

10分くらいで、さくっと終わる記事をめざしています。


シリーズ一覧

続きは近日公開予定!

はじめに

この記事は paiza.IO の「Online Java compiler」を利用しています。
2024/12/17 現在、上記環境の Java バージョンは 18 です。(paiza.IO利用ガイド)

実行したコードは paiza.IO で保存および公開されることがあります。
そのため、個人情報などの機密性の高い情報は、コードとして入力しないようにご注意ください。

詳細は paiza.IO の利用規約およびプライバシーポリシーをご確認ください。

if文とは

if文(イフぶん、英: if statement)は、プログラミング言語において、真理値に従って「もし条件Cが満たされるならば、Xを実行せよ」というような条件付き実行の「文」で、制御構造のひとつである。

if文とは、プログラムを条件分岐させるための制御文です。

簡単にいうと

  • もし A なら B を処理する

というコードです。

【 if文のイメージ 】

フローチャート1

Java の if文は、次のように記述します。

if (条件式) {
    then文
}

これが基本の形となります。

  • 条件式を 満たすとき、then文 が実行されます。
  • 条件式を 満たさないとき、then文 は実行されません。

(ちなみに then文 の then は、英語の仮定法で使われる if ~ then ~ 構文からきています)

if文は「文」ですが、文末にセミコロン (;) は必要ありません。

それでは、プログラムで実際の動きを確認してみましょう。
コードは変更せずに、そのまま「実行(Ctrl-Enter)」ボタンを押してください。

(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)

いかがでしたでしょうか? 「出力」のところに

条件OK!
if文終了

と表示されたら成功です。

今度は a = 15 に書き換えて再度実行してみてください。
結果は変わりましたでしょうか?

if文終了

と表示されたら成功です。

コード解説

それでは、コードを少しずつ見ていきましょう。

int a = 5;
if (a < 10) {
    System.out.println("条件OK!");
}

条件式

最初は「条件式」ですね。

if (a < 10) {
    ^^^^^^ <--- 条件式
}

この a < 10 は、

  • 変数 a は 10 より小さいか?

という意味の「式」になります。

さて、前回の記事 では

  • 「式」は値を返す

と学びました。

では、この条件式は何を返すのでしょうか?

a < 10
^^^^^^ <--- 条件式

答えは 真偽値 になります。
(真理値や論理値ともいいます)

真偽値

真理値(しんりち、英: truth value)は、命題論理などの命題の真偽を示す値である。英語のTrueとFalseから、真に対してT、偽に対してFという記号をあてることもある。

真偽値とは

  • 真 (true)
  • 偽 (false)

の2つの値からなります。
Java では真偽値を boolean 型として扱います。

例えば、整数の int 型では 123 や -456, 999999 など無数の値をとります。
しかし boolean 型 は truefalse の2つだけしか値はありません。

// int型
int a = 123;
int b = -456;
int c = 999999;

// boolean型
boolean x = true;
boolean y = false;

真とか偽とかいわれても、あまりピンとこない…
そんなときは、

  • 真 (そうだよ!)
  • 偽 (違うよ!)

くらいの理解でも大丈夫です。

それでは、条件式 が本当に真偽値を返すのか実際に確認してみましょう。

(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)

  • 5 < 10 は真なので true
  • 15 < 10 は偽なので false

と表示されたら成功です。

比較演算子

さて、条件式をもう1度見てみましょう。

if (a < 10) {
    ^^^^^^ <--- 条件式
}

条件式の中に < 記号がありますね。

a < 10
  ^ <--- 比較演算子

この < 記号は「比較演算子」の1つです。

算数や数学では不等号として習ったかもしれません。
「大なり」「小なり」とかですね。

比較演算子を使った演算では、結果として 真偽値 を返します。

【比較演算子の一覧】

Java で使える主な比較演算子をご紹介します。

比較演算子 意味
== a == b a と b が等しい
!= a != b a と b が等しくない
< a < b a より b が大きい
> a > b a より b が小さい
<= a <= b a より b が大きい、または等しい
>= a >= b a より b が小さい、または等しい

等しいを意味する比較演算子は == です。
イコール記号を2つ使います。

= だと「代入」となり、別の意味になるのでご注意ください。

(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)


then文

続いて、then文について見ていきましょう。

if (条件式) {
    then文
}

if文の中括弧 { ... } で囲まれたところが then文になります。

if (...) {
    System.out.println("条件OK!");
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <--- then文
}

if文の条件式が 真(true) を返すときに、then文が実行されます。
偽(false) を返すと then文は実行されません。

ちなみに、then文は複数書くこともできます。

if (...) {
    then文
    then文
    then文
    ・
    ・
    ・
}

実際にコードを動かして確認してみましょう。

(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)

応用問題

【問題】

プログラムを実行すると、

OK-1
OK-2

と「出力」へ表示されるように、変数 ab を適切な数値で初期化してください。
(# になっているところを数値に書き換えてください)

int a = #;
int b = #;
        ^ <--- この部分!

それでは、下のプログラムの # を数値に書き換えて「実行(Ctrl-Enter)」してみましょう。

(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)

無事に、

OK-1
OK-2

と出力されましたでしょうか?

もし解けなかった場合は、下記の回答例をご参照ください。

回答例

【コード】

public class Main {
    public static void main(String[] args) {
        int a = 6;
        int b = 10;
        
        if (a > 5) {
            if (b == 10) {
                System.out.println("OK-1");
            }
            if (a <= 6) {
                System.out.println("OK-2");
            }
        }
    }
}

【出力】

OK-1
OK-2

まとめ

Java の if文は、次のように記述します。

if (条件式) {
    then文
}
  • 条件式を 満たすとき、then文 が実行されます。
  • 条件式を 満たさないとき、then文 は実行されません。

プログラミングにおいて、if文はなくてはならない制御文の1つです。
ぜひ有効に使いこなしていきたいですね。

もう少し詳しいことは「if文の基本 (文法)」の記事でも解説しています。
興味がありましたら、そちらもぜひご参照ください。

次回は「手を動かして学ぶ Java入門 (if-else文、if-elseif文)」になります。


関連記事

ページの先頭へ