はじめに
こんにちは。
「スッキリわかるJava入門」を使って基礎を振り返るシリーズの第3回です。この記事を書くことで、私自身の理解を深めることが目的です。
今回は第3章「条件分岐と繰り返し」について学び直しました。
第1,2回はAIを活用してアウトプットしましたが、学びを深めるにあたって自分で本文を考えることが大切だと感じました。そのため、基礎を振り返る記事ではAIの活用を最小限にとどめようと思っています。
この記事が、同じく基礎を学び直したい人にとっても参考になりましたら幸いです。
参考書籍について
- 書籍名:スッキリわかるJava入門
- 著者:中山清喬、国本大悟
- 出版社:インプレス
コードの実行について
この記事では環境構築などは省略し、ブラウザ上で動作するdokojavaを利用することをおすすめします。
実行にはユーザー登録が必要です。
目次
1. 結論
- 文の実行順序を制御する。その制御構造として「順次、分岐、繰り返し」があります。
- 分岐には3種類のif文とswitch文があります。
- 繰り返しにはfor文とwhile文が2種類ずつあります。
| 制御構造 | 種類 | 説明 |
|---|---|---|
| 順次 | 上から順番に実行 | プログラムを上から下へ実行 |
| 分岐 | if文(単純if) | 条件が真の場合だけ処理を実行 |
| if-else文 | 条件が真か偽かで処理を分ける | |
| if-else if-else文 | 複数の条件を順番にチェック | |
| switch文 | 式の値に応じて処理を分ける | |
| 繰り返し | for文 | 初期値・条件・増減式を明示的に指定 |
| 拡張for文 | 配列やコレクションの全要素をループ | |
| while文 | 条件が真の間、繰り返し実行 | |
| do-while文 | 最低1回実行した後、条件をチェック |
2. 学び
構造化定理
「どんなに複雑なプログラムも、『順次』『分岐』『繰り返し』の3つのパーツ(制御構造)だけで作ることができる」という定理です。
// コード例
public class Main {
public static void main(String[] args) {
int number = 100;
// 1. 順次
System.out.println("--- 順次 ---");
System.out.println("順次");
// 2. 分岐 if文
System.out.println("--- 分岐:if文 ---");
if (number == 100) {
System.out.println("分岐 if文");
}
// 3. 分岐 if-else文
System.out.println("--- 分岐:if-else文 ---");
if (number == 80) {
System.out.println("ここには入りません。");
} else {
System.out.println("分岐 if-else文");
}
// 4. 分岐 if-else if-else文
System.out.println("--- 分岐:if-else if-else文 ---");
if (number == 70) {
System.out.println("ここには入りません。");
} else if (number == 200) {
System.out.println("ここにも入りません。");
} else {
System.out.println("分岐 if-else if-else文");
}
// 5. 分岐 switch文
System.out.println("--- 分岐:switch文 ---");
switch (number) {
case 50:
System.out.println("がんばりましょう");
break;
case 70:
System.out.println("まずまずです");
break;
case 100:
System.out.println("大変よくできました");
break;
default:
System.out.println("想定外の数値です");
break;
}
// 6. for文
System.out.println("--- for文 ---");
for (int i = 1; i <= 3; i++) {
System.out.println(i + "回目のループです");
}
// 7. 拡張for文
System.out.println("--- 拡張for文 ---");
int[] scores = {80, 90, 75};
for (int score : scores) {
System.out.println("点数: " + score);
}
// 8. while文
System.out.println("--- while文 ---");
int count = 1;
while (count <= 3) {
System.out.println("whileカウント: " + count);
count++;
}
// 9. do-while文
System.out.println("--- do-while文 ---");
int num = 5;
do {
System.out.println("do-while内の処理(値: " + num + ")");
num++;
} while (num < 3);
}
}
3. 自分なりの解釈
- この機能が何のためにあるのか
- 処理の流れを制御するため
- どんな時に使うのか
- 条件によって処理を変えたい時
- 例:ユーザーの年齢で料金を変える、ゲームのスコアで判定を分ける、など
- 条件によって処理を変えたい時
4. この章のポイント
- 短絡評価
- 最初の条件だけで評価が決まる場合、2つ目の条件はチェックせずにスキップされます。
- switch文
- if文から書き換えられる条件として、1つの変数に対して「値が一致するか」を何度も比較する時に使います。
- break文は、処理を終わらせてswitch文から抜けるために記述します。
- 繰り返しの中断
- break文はループを完全に抜ける、continue文は次のループにスキップします。
5. まとめ
- 文を実行させる順番を制御するために「順次、分岐、繰り返し」という3つの制御構造があります。
- 分岐(if文とswitch文)を使い分けることで、条件に応じた処理が実現できます。
- 繰り返し(for文とwhile文)を使い分けることで、効率的にループ処理ができます。
最後まで見ていただきありがとうございました。
次回は第4章「配列」について書く予定です。