プログラミングにおいて、制御構文は重要な要素です。制御構文を使うことで、プログラムが特定の条件に応じて異なる処理を実行したり、同じ処理を繰り返すことができます。この章では、Javaの条件分岐と繰り返し処理に関連する制御構文を学びます。具体的には、if
文、switch
文、for
ループ、while
ループ、break
やcontinue
などのキーワードを使った処理の制御方法を詳しく説明します。
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
ループを使って同じ処理を繰り返すことができるようになりました。また、break
やcontinue
を使ってループの制御を柔軟に行うことも可能です。
制御構文はプログラムを論理的に組み立てる上で非常に重要な要素です。次章では、Javaのメソッドについて詳しく学び、再利用可能なコードの書き方を理解していきます。