手を動かして学ぶ Java入門 (if文)
環境構築不要! ブラウザから直接コードを実行できます。
本記事では、Java の if文 について学びます。
10分くらいで、さくっと終わる記事をめざしています。
シリーズ一覧
- シリーズ
- 手を動かして学ぶ Java入門 (Hello world 編)
- 手を動かして学ぶ Java入門 (数値と演算)
- 手を動かして学ぶ Java入門 (数値と変数)
- 手を動かして学ぶ Java入門 (コメントの書き方)
- 手を動かして学ぶ Java入門 (文と式の違い)
- 手を動かして学ぶ Java入門 (if文)
- 手を動かして学ぶ Java入門 (if-else文、if-elseif文)
- 手を動かして学ぶ Java入門 (文字列の連結)
- 手を動かして学ぶ Java入門 (while文)
- 手を動かして学ぶ Java入門 (break文)
- 手を動かして学ぶ Java入門 (continue文)
- 手を動かして学ぶ Java入門 (for文)
- 手を動かして学ぶ Java入門 (クラスの超基本)
- 手を動かして学ぶ Java入門 (クラス・メソッド)
- 手を動かして学ぶ Java入門 (クラス・フィールド)
- 手を動かして学ぶ Java入門 (クラス・コンストラクタ)
- 手を動かして学ぶ Java入門 (文字列クラス)
- 手を動かして学ぶ Java入門 (静的メソッド)
- 手を動かして学ぶ Java入門 (静的フィールド)
- 手を動かして学ぶ Java入門 (定数の定義)
- 手を動かして学ぶ Java入門 (クラス継承の超基本)
- 手を動かして学ぶ Java入門 (メソッドのオーバーライド)
- 手を動かして学ぶ Java入門 (メソッドのオーバーロード)
続きは近日公開予定!
はじめに
この記事は paiza.IO の「Online Java compiler」を利用しています。
2024/12/17 現在、上記環境の Java バージョンは 18 です。(paiza.IO利用ガイド)
実行したコードは paiza.IO で保存および公開されることがあります。
そのため、個人情報などの機密性の高い情報は、コードとして入力しないようにご注意ください。
詳細は paiza.IO の利用規約およびプライバシーポリシーをご確認ください。
if文とは
if文とは、プログラムを条件分岐させるための制御文です。
簡単にいうと
- もし A なら B を処理する
というコードです。
【 if文のイメージ 】
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
^^^^^^ <--- 条件式
答えは 真偽値 になります。
(真理値や論理値ともいいます)
真偽値
真偽値とは
- 真 (true)
- 偽 (false)
の2つの値からなります。
Java では真偽値を boolean 型として扱います。
例えば、整数の int 型では 123 や -456, 999999 など無数の値をとります。
しかし boolean 型 は true と false の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
と「出力」へ表示されるように、変数 a と b を適切な数値で初期化してください。
(# になっているところを数値に書き換えてください)
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文)」になります。
関連記事
- シリーズ
- 手を動かして学ぶ Java入門 (Hello world 編)
- 手を動かして学ぶ Java入門 (数値と演算)
- 手を動かして学ぶ Java入門 (数値と変数)
- 手を動かして学ぶ Java入門 (コメントの書き方)
- 手を動かして学ぶ Java入門 (文と式の違い)
- 手を動かして学ぶ Java入門 (if文)
- 手を動かして学ぶ Java入門 (if-else文、if-elseif文)
- 手を動かして学ぶ Java入門 (文字列の連結)
- 手を動かして学ぶ Java入門 (while文)
- 手を動かして学ぶ Java入門 (break文)
- 手を動かして学ぶ Java入門 (continue文)
- 手を動かして学ぶ Java入門 (for文)
- 手を動かして学ぶ Java入門 (クラスの超基本)
- 手を動かして学ぶ Java入門 (クラス・メソッド)
- 手を動かして学ぶ Java入門 (クラス・フィールド)
- 手を動かして学ぶ Java入門 (クラス・コンストラクタ)
- 手を動かして学ぶ Java入門 (文字列クラス)
- 手を動かして学ぶ Java入門 (静的メソッド)
- 手を動かして学ぶ Java入門 (静的フィールド)
- 手を動かして学ぶ Java入門 (定数の定義)
- 手を動かして学ぶ Java入門 (クラス継承の超基本)
- 手を動かして学ぶ Java入門 (メソッドのオーバーライド)
- 手を動かして学ぶ Java入門 (メソッドのオーバーロード)