【Java入門】第4章Javaの制御構文 〜条件分岐と繰り返し処理〜

【Java入門シリーズ】第4章: Javaの制御構文 〜条件分岐と繰り返し処理〜


プログラミングにおいて、制御構文は重要な要素です。制御構文を使うことで、プログラムが特定の条件に応じて異なる処理を実行したり、同じ処理を繰り返すことができます。この章では、Javaの条件分岐繰り返し処理に関連する制御構文を学びます。具体的には、if文、switch文、forループ、whileループ、breakcontinueなどのキーワードを使った処理の制御方法を詳しく説明します。


4.1 条件分岐 〜if文とelse文〜

まず、Javaプログラムで特定の条件に基づいて処理を分岐させる方法から始めます。これを実現するために使われるのが、ifや**else文**です。

4.1.1 if文の基本構造

if文は、条件式がtrueのときに処理を実行する構文です。

if (条件) {
// 条件がtrueの場合に実行されるコード
}

例えば、以下のコードでは、xの値が10以上である場合にメッセージが表示されます。

int x = 15;
if (x >= 10) {
System.out.println("xは10以上です。");
}

4.1.2 if-else文

if-else文を使うことで、条件がfalseである場合に別の処理を実行することができます。

if (条件) {
// 条件がtrueの場合に実行されるコード
} else {
// 条件がfalseの場合に実行されるコード
}

次の例では、xの値が10以上かどうかで表示されるメッセージが異なります。

int x = 5;
if (x >= 10) {
System.out.println("xは10以上です。");
} else {
System.out.println("xは10未満です。");
}

4.1.3 if-else if-else文

複数の条件を扱いたい場合は、if-else if-else文を使います。

if (条件1) {
// 条件1がtrueの場合に実行されるコード
} else if (条件2) {
// 条件2がtrueの場合に実行されるコード
} else {
// すべての条件がfalseの場合に実行されるコード
}

例えば、以下の例では、xの値に応じて異なるメッセージを表示します。

int x = 20;
if (x > 30) {
System.out.println("xは30より大きいです。");
} else if (x > 10) {
System.out.println("xは10より大きく、30以下です。");
} else {
System.out.println("xは10以下です。");
}

4.2 switch文 〜複数の条件を簡潔に扱う〜

次に、複数の条件に基づいて処理を分岐させる際に便利な**switch文**を見ていきます。switch文は、特定の変数の値に応じて実行する処理を選択するために使用されます。

4.2.1 switch文の基本構造

switch文では、変数の値が特定の値に一致した場合に対応する処理を実行します。

switch (変数) {
case 値1:
// 値1の場合に実行されるコード
break;
case 値2:
// 値2の場合に実行されるコード
break;
default:
// どの値にも一致しない場合に実行されるコード
}

例えば、次の例では、dayの値に応じて曜日を表示します。

int day = 3;
switch (day) {
case 1:
System.out.println("日曜日");
break;
case 2:
System.out.println("月曜日");
break;
case 3:
System.out.println("火曜日");
break;
default:
System.out.println("不明な曜日です");
break;
}

4.2.2 Java 12以降のswitch文の新構文

Java 12からは、switch文が「式」としても使えるようになり、より簡潔な記述が可能になりました。

String dayName = switch (day) {
case 1 -> "日曜日";
case 2 -> "月曜日";
case 3 -> "火曜日";
default -> "不明な曜日です";
};
System.out.println(dayName);

この新しいswitch構文では、caseの後に->を使い、値を返す形で処理を記述します。yieldを使って複雑なロジックを返すこともできます。


4.3 繰り返し処理 〜forループとwhileループ〜

繰り返し処理は、同じ処理を複数回実行するために使います。ここでは、forループと**whileループ**の使い方を学びます。

4.3.1 forループの基本構造

forループは、特定の回数だけ処理を繰り返したい場合に使用します。

for (初期化; 条件; 変化式) {
// 繰り返す処理
}

例えば、1から5までの数字を順番に表示するプログラムは次のようになります。

for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
  • 初期化: ループの最初に1回だけ実行される処理(例: int i = 1)。
  • 条件: ループを続けるかどうかを判定する条件(例: i <= 5)。
  • 変化式: 各ループの最後に実行される処理(例: i++)。

4.3.2 拡張forループ(for-each)

拡張forループは、配列やコレクションの要素を1つずつ処理するために使います。例えば、配列の全要素を表示する場合に便利です。

int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}

ここでは、配列numbersの各要素を順番に取り出してnumに代入し、その値を表示しています。

4.3.3 whileループの基本構造

whileループは、特定の条件がtrueである間、処理を繰り返す構文です。

while (条件) {
// 繰り返す処理
}

例えば、iが5以下である間、数字を表示するプログラムは次のようになります。

int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}

4.3.4 do-whileループ

do-whileループは、少なくとも1回は必ず処理を実行してから条件を判定します。

do {
// 最初に実行される処理
} while (条件);

例えば、iが5以下である間、数字を表示するプログラムは次のようになります。

int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);

4.4 繰り返し処理の制御 〜break文とcontinue文〜

繰り返し処理の中で、特定の条件が満たされたときにループを終了させたり、スキップしたりしたい場合に、breakや**continue文**を使います。

4.4.1 break文

break文は、ループを強制的に終了させるために使います。例えば、以下のプログラムではiが3になった時点でループが終了します。

for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // ループを終了
}
System.out.println(i);
}

4.4.2 continue文

continue文は、ループの残りの処理をスキップして次の繰り返しに移ります。以下の例では、iが3のときだけ表示をスキップします。

for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 3の場合はスキップ
}
System.out.println(i);
}

4.5 Javaの制御構文まとめ

この章では、Javaの制御構文について学びました。条件分岐ではif文やswitch文を使って処理を分岐させ、繰り返し処理ではforループやwhileループを使って同じ処理を繰り返すことができるようになりました。また、breakcontinueを使ってループの制御を柔軟に行うことも可能です。

制御構文はプログラムを論理的に組み立てる上で非常に重要な要素です。次章では、Javaのメソッドについて詳しく学び、再利用可能なコードの書き方を理解していきます。