ループ
Loop
概要(サマリー)
ループとは、同じ処理を条件が満たされている間、または指定した回数だけ繰り返す仕組みのことである。
たとえば「100人分の名前を表示したい」とき、同じコードを100回書くのは非効率だ。ループを使えば1回書くだけで済む。配列の全要素を処理したり、ユーザーが入力するまで待ち続けたりする場面でもループは欠かせない。AIコーディングでも頻繁に生成されるため、基本的な動作を理解しておくと生成されたコードが読みやすくなる。
詳細解説
ループとは何か
プログラムは通常、上から下へと一度ずつ命令を実行する。しかし「同じ処理を繰り返したい」「配列の全要素に同じ処理をしたい」という場面は非常に多い。そこで使われるのがループ(繰り返し処理)だ。
ループには「何回繰り返すか」または「どんな条件のとき繰り返すか」を指定する。
for 文(回数が決まっている繰り返し)
繰り返す回数があらかじめ決まっている場合は for 文が適している。
for (let i = 0; i < 5; i++) {
console.log(i + "回目");
}
// 0回目
// 1回目
// 2回目
// 3回目
// 4回目
for (初期化; 条件; 更新) という形式だ。i は繰り返しのカウンターとして使われる変数で、慣習的に i という名前が使われる。
配列とループの組み合わせ
ループは配列と一緒に使うことが非常に多い。
let fruits = ["りんご", "バナナ", "みかん"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// りんご
// バナナ
// みかん
JavaScriptでは for...of を使うとさらにシンプルに書ける。
for (let fruit of fruits) {
console.log(fruit);
}
while 文(条件が満たされる間の繰り返し)
繰り返す回数が決まっていないが「条件が真の間は繰り返したい」という場合は while 文を使う。
let count = 0;
while (count < 3) {
console.log("カウント: " + count);
count++;
}
// カウント: 0
// カウント: 1
// カウント: 2
while 文では条件が false になるまでループが続く。条件の更新を忘れると無限ループになるので注意が必要だ。
forEach / map などの高階関数
現代のJavaScript開発では、for 文の代わりに配列のメソッドを使うことが多い。
let numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(num) {
console.log(num * 2);
});
// 2, 4, 6, 8, 10
let doubled = numbers.map(function(num) {
return num * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
forEach は配列の要素を順番に処理する。map は処理した結果を新しい配列として返す。AIが生成するコードではこれらの書き方も頻繁に登場する。
AIコーディングとの関係
AIはループを非常に頻繁に生成する。配列の処理、API結果の一覧表示、繰り返し入力のバリデーションなど、ほぼすべての実用的なプログラムにループが登場する。
AIへの効果的な指示の例:
- 「この配列の全要素に対して○○の処理を実行するコードを書いてください」
- 「1から100までの数字を順番に表示するループを書いてください」
- 「このforEachをfor...ofに書き換えてください」
- 「このループが無限ループにならないか確認してください」
関数とループを組み合わせると、より再利用性の高いコードになる。AIに「繰り返し処理を関数にまとめて」と依頼するのも有効だ。
よくある勘違い
ループと無限ループは違う
ループは意図的に繰り返す処理で、終了条件が正しく設定されていれば問題なく終わる。無限ループは終了条件が満たされないまま永遠に回り続けてしまうバグのことだ。「ループ = 危険なもの」ではなく、「ループは道具、無限ループは使い方のミス」と理解しておこう。
for と while はどちらを使えばいい?
「回数が決まっているなら for、条件で制御するなら while」というのが基本の使い分けだ。ただし絶対的なルールではなく、どちらでも書けることが多い。AIに生成してもらったコードが while を使っていても驚かなくてよい。
forEach と for...of はどう違う?
forEach はコールバック関数を受け取るメソッドで、配列に対してのみ使える。for...of は配列だけでなく文字列や Map など反復可能なオブジェクト全般に使える構文だ。どちらを使っても配列の全要素を処理できる。
まとめ
- ループとは、同じ処理を繰り返す仕組みのことである
- 回数が決まっているときは
for文、条件が満たされる間はwhile文を使う - 配列と組み合わせることが多く、
forEachやmapなどのメソッドも頻繁に使われる - 終了条件を正しく設定しないと無限ループになるため注意が必要
- AIが生成するコードにはループが頻繁に登場するため、基本的な読み方を覚えておくと役立つ
情報ソース
より詳しくAIに聞いてみよう
- ループとは何かを、日常生活のたとえを使って中学生でもわかるように説明してください。
- for 文・while 文・forEach の使い分けを、具体的なコード例で説明してください。
- 無限ループが起きる典型的なパターンと、その防ぎ方を教えてください。
- 配列を処理するときに map・filter・reduce をどう使い分けるか教えてください。
- AIに「この配列の全要素を処理するコードを書いて」と依頼するとき、より良い指示の出し方を教えてください。