Java - ループ制御
こんにちは、未来のJavaプログラマー!今日は、プログラミングの最も基本的な概念の一つであるループについて深く掘り下げます。あなたの親しみのある近所のコンピューターサイエンスの先生として、あなたをこの旅に案内することを楽しみにしています。だから、お気に入りの飲み物を持って、快適に座り、一緒にこのぐるぐるした冒険に出発しましょう!
ループが必要な場面?
白板に「私はJavaを愛しています」を100回書くという課題になったとしましょう。つまらないと感じてしまいでしょうか?そんなとき、ループが駆けつけて救援します!ループは、コードを複数回書く必要なく、ブロックのコードを繰り返し実行することができます。彼らは、あなたのパーソナルアシスタントのように、絶えず反復的なタスクをあなたに代わってこなします。
ループ文
Javaの特定のタイプのループに飛び込む前に、ループの一般的な構造を理解しましょう:
- 初期化:初期条件を設定する
- 条件:ループが続けられるべきかどうかを確認する
- ボディ:実行されるコード
- 更新:ループ変数を変更する
それはレースの準備として考えてみてください。あなたは始めに(初期化)、終着点に達したかどうかを確認します(条件)、周回します(ボディ)、そして進みます(更新)。
Javaのループ
Javaは3つの主要なタイプのループを提供します。それぞれのループについて例と説明を交えて見ていきましょう。
1. Forループ
Forループは、スイスアーミーナイフのように、多様で精確なループです。何回繰り返したいかを正確に知っている場合に最適です。
for (int i = 1; i <= 5; i++) {
System.out.println("ループの反復: " + i);
}
これを分解してみましょう:
-
int i = 1
:ループ変数を初期化する -
i <= 5
:この条件が真の間はループを続ける -
i++
:各反復の後にiをインクリメントする - ボディは現在の反復数を出力します
出力:
ループの反復: 1
ループの反復: 2
ループの反復: 3
ループの反復: 4
ループの反復: 5
2. Whileループ
Whileループは、クラブのバouncerのようです。条件を確認し続け、その条件が真である場合にのみコードの内部を実行します。
int count = 0;
while (count < 3) {
System.out.println("カウントは: " + count);
count++;
}
ここで何が起こっているか:
- まず
count
は0から始まります -
count
が3未満の間ループが続きます - ループの各回で現在のcountを出力し、インクリメントします
出力:
カウントは: 0
カウントは: 1
カウントは: 2
3. Do-Whileループ
Do-Whileループは、根気の強いセールスマンのようです。少なくとも一度コードを実行し、その後、続けるべきかどうかを確認します。
int num = 1;
do {
System.out.println("数値は: " + num);
num *= 2;
} while (num < 10);
ここでの分解:
- まず
num
は1から始まります - ループボディは実行され、数値を出力し、2倍します
- 各反復の後に、
num
がまだ10未満かどうかを確認します
出力:
数値は: 1
数値は: 2
数値は: 4
数値は: 8
ループ制御文
時々、ループに対してさらに多くの制御が必要です。そんなとき、ループ制御文が便利に使えます。彼らは、ループの車のハンドルとブレーキのような存在です。
1. Break文
Break文は、緊急出口のような存在です。ループを今すぐ終了し、ループの後の文に移行します。
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println("現在の数値: " + i);
}
この例では、i
が5に達すると、10まで設定されていたにもかかわらず、ループが停止します。
出力:
現在の数値: 1
現在の数値: 2
現在の数値: 3
現在の数値: 4
2. Continue文
Continue文は、プレイリストの曲をスキップするのに似ています。現在の反復の残りをスキップし、次の反復に移行します。
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println("処理中の数値: " + i);
}
このループは、i
が3のときに出力をスキップします。
出力:
処理中の数値: 1
処理中の数値: 2
処理中の数値: 4
処理中の数値: 5
3. ラベル付き文
ラベル付き文は、ループに名前を付けるのに似ています。特に、ネストされたループを扱い、特定の外側のループをbreakまたはcontinueする場合に便利です。
outerLoop: for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
break outerLoop;
}
System.out.println("i = " + i + ", j = " + j);
}
}
このネストされたループ構造は、i
が2でj
が2のときに両方のループからbreakします。
出力:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
結論
おめでとうございます!あなたは、Javaのループとループ制御文についての短いツアーを完了しました。ループは、プログラムの心臓のように、スムーズかつ効率的に物事を進めるのに不可欠です。Javaの旅を続ける中で、これらの概念を頻繁に使うことになるでしょう。
以下に、私たちがカバーしたループと制御文の簡易リファレンス表を示します:
ループタイプ | 使用シーン | キーポイント |
---|---|---|
Forループ | 反復回数が分かっている場合 | 簡潔な構文、配列に適している |
Whileループ | 反復回数が分からない場合 | 実行前に条件を確認 |
Do-Whileループ | 少なくとも1回実行する必要がある場合 | 実行後に条件を確認 |
Break | ループを途中で終了する | すべてのループタイプで動作 |
Continue | 現在の反復をスキップする | すべてのループタイプで動作 |
ラベル付き文 | ネストされたループを制御する | 复雑なループ構造に便利 |
これらの概念を練習し、異なるシナリオで実験してみてください。そして、すぐにプロとしてのループを使いこなすことができるようになります!プログラミングでも人生でも、時々ぐるぐると回ることで進歩することがあるのです。幸せなコーディング!
Credits: Image by storyset