ループのネストで困ったことはありませんか?
プログラミングを学び始めると、繰り返し処理(ループ)の中にさらにループを書く「ネスト」という構造によく出会います。例えば、二次元配列の検索や、複雑なデータ構造の処理などです。通常、内側のループを途中で止めたいときは break 文を使いますが、実は「内側だけでなく、外側のループごと一気に終了させたい」という場面も少なくありません。そんな時に役立つのが「ラベル付き文」という少しマニアックな機能です。
ラベル付き文とは何か
ラベル付き文は、ループの先頭に「名前」を付けておく仕組みです。文法はとてもシンプルで、ループの直前に 名前: を置くだけです。そして、その名前を break や continue の後に指定することで、対象のループを直接操作できるようになります。
具体的な活用事例
例えば、以下のようなコードを考えてみましょう。
outerLoop:
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
if (i === 2 && j === 2) {
console.log("条件に一致したので全体を終了します");
break outerLoop;
}
console.log(`i: ${i}, j: ${j}`);
}
}
通常、内側のループで break を使うと、内側のループだけが止まり、外側のループは継続してしまいます。しかし、上記のように break outerLoop; と書くことで、プログラムは外側のループまで含めて一気に抜け出すことができます。
なぜこれを知っておくべきか
初心者のうちは、フラグ変数(例: let isFinished = false;)を用意して、それを判定することで多重ループを制御しがちです。しかし、フラグ変数はコードが長くなりやすく、可読性を下げる原因にもなります。ラベル付き文を使えば、余計な変数を作らずに、意図を明確にコードへ落とし込むことができます。
注意点とまとめ
非常に便利な機能ですが、多用しすぎるとコードの処理の流れが追いにくくなるという側面もあります。「ここぞという時のショートカット」として、ここぞという場面でスマートに使ってみてください。複雑な処理をすっきりと書けるようになると、プログラミングがもっと楽しくなりますよ。ぜひ次回のコーディングで試してみてください。