JavaScriptのループでスキップする条件の書き方例!初心者でもわかる使い方
生徒
「JavaScriptのループで、ある条件のときだけ処理をスキップする方法ってありますか?」
先生
「ありますよ。ループの中で『continue』という命令を使うことで、特定の条件のときだけ次の繰り返しに飛ばすことができます。」
生徒
「どうやって書くのか、具体的な例も教えてください!」
先生
「それでは、基本の使い方から説明しますね!」
1. ループ処理とは?
ループ処理とは、同じ処理を繰り返すことを指します。JavaScriptではforやwhileなどの構文を使って繰り返し処理ができます。例えば、1から5までの数字を順番に表示したいときに使います。
2. ループで処理をスキップするとは?
ループの中で「この条件のときは処理を飛ばして、次の繰り返しに進みたい」という場合があります。例えば、「偶数のときは何もしないで次に進みたい」というようなケースです。
3. continue文の使い方
continueは「この回のループ処理を途中でやめて、次の繰り返しに進んでね」という意味です。
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
continue; // 偶数のときはここでスキップ
}
console.log(i);
}
このコードは、1から5までの数字を順に調べて、偶数(2, 4)のときはcontinueでスキップし、奇数だけを表示します。
4. 実行結果を見てみよう
1
3
5
偶数の2と4はcontinueでスキップされて、表示されていません。
5. whileループでもcontinueは使える
whileループでも同じようにcontinueが使えます。
let i = 0;
while (i < 5) {
i++;
if (i === 3) {
continue; // iが3のときはスキップ
}
console.log(i);
}
この場合、3のときだけ処理をスキップして、それ以外の数字は表示されます。
6. 実行結果を見てみよう
1
2
4
5
3のときだけ処理がスキップされているのがわかりますね。
7. continueを使うときの注意点
continueは便利ですが、使いすぎるとコードが読みにくくなることがあります。なるべく分かりやすく書くことを心がけましょう。
また、条件を間違えると意図しない動きをすることもあるので、条件式はしっかりチェックしてください。
8. まとめなしで最後にひとこと
JavaScriptのループ処理で特定の条件をスキップするときは、continueを使うのが基本です。覚えておくとプログラムの制御がとても便利になりますよ。
まとめ
ここまでJavaScriptにおけるループ処理のスキップ方法、特に「continue文」の基本的な使い方から応用までを詳しく解説してきました。プログラムを書いていると、どうしても「この特定のデータだけは処理したくない」「エラーになりそうな値だけを除外してループを続けたい」といった場面に遭遇します。そんな時に、ループそのものを中断(break)してしまうのではなく、あくまで「今の回だけをお休み」させて次に進めるcontinue文は、非常に強力な武器になります。
ループ制御をマスターするためのポイント
JavaScriptで効率的なコードを書くためには、制御構文の使い分けが重要です。今回学んだcontinueだけでなく、ループを完全に終了させるbreak、そして条件分岐のif-elseを組み合わせることで、複雑なロジックもシンプルに記述できるようになります。特にWeb開発の実務では、APIから取得した配列データの中から、特定のステータスを持つものだけを抽出して画面に表示したり、計算から除外したりする処理が頻繁に発生します。
さらに実践的なサンプル:特定の文字列をスキップする
数値だけでなく、文字列の配列を扱う場合でも使い方は同じです。例えば、ユーザー名のリストの中に空文字や「未設定」という項目が混ざっている場合、それらを無視して有効な名前だけを出力するプログラムを考えてみましょう。
const users = ["田中", "佐藤", "", "鈴木", "未設定", "高橋"];
for (let i = 0; i < users.length; i++) {
// 空文字、または「未設定」の場合は処理をスキップ
if (users[i] === "" || users[i] === "未設定") {
continue;
}
console.log("こんにちは、" + users[i] + "さん!");
}
実行結果の確認
上記のコードを実行すると、不適切なデータが除外され、以下のように挨拶文が表示されます。
こんにちは、田中さん!
こんにちは、佐藤さん!
こんにちは、鈴木さん!
こんにちは、高橋さん!
SEOの観点から:JavaScriptの繰り返し処理とパフォーマンス
Googleなどの検索エンジンに評価される「質の高いコード」とは、可読性が高く、無駄なリソースを消費しないコードのことです。大量のデータを扱う際、不要な処理をcontinueで早めに切り上げる(早期リターンに近い考え方)ことは、実行速度の向上にも繋がります。プログラミング初心者の方は、まずは「正しく動くこと」を目標にし、慣れてきたら「読みやすく、効率の良い書き方」を意識してみてください。
TypeScriptでの記述例
最近の開発現場で主流となっているTypeScriptでも、同様に記述が可能です。型定義を行うことで、より安全にループ処理を記述できます。
const scores: number[] = [85, 42, 90, 33, 76];
for (const score of scores) {
// 60点未満(赤点)の場合は合格リストへの追加をスキップ
if (score < 60) {
continue;
}
console.log(`合格点: ${score}`);
}
このように、for...of文と組み合わせることで、配列の要素を直接扱いながらフィルタリングを行うことができます。文脈に合わせて最適なループ構文を選べるようになると、JavaScriptのスキルは一段と向上します。
生徒
「先生、ありがとうございました!continueを使うと、if文の中にダラダラと長い処理を書かなくて済むので、コードがスッキリしますね。」
先生
「その通りです!『ネスト(階層)を浅くする』というのは、良いプログラミングをするための鉄則の一つなんですよ。特定の条件を排除して、本命の処理をループのメイン部分に書くことで、後から見返した時に何をしているか分かりやすくなります。」
生徒
「なるほど。ところで、breakとcontinueをどっちを使うか迷ったときは、どう考えればいいでしょうか?」
先生
「シンプルに考えましょう。残りのループも全部止めていいならbreak。その回だけをパスして、次のお客さんの対応に移りたいならcontinueです。例えば、行列に並んでいる人で、チケットを持っていない人を飛ばすのがcontinue、不審者が現れてお店を閉めるのがbreak、といったイメージですね。」
生徒
「例えがすごく分かりやすいです!不審者は困りますけど(笑)。条件式を書くときに、i++を忘れて無限ループにならないようにも気をつけます。」
先生
「おっ、鋭いですね!特にwhile文でcontinueを使うときは、インクリメント(加算)の位置を間違えると永遠に同じ数字で止まってしまうことがあります。基本はfor文を使うのが安全ですが、仕組みを理解して使い分けていきましょう。次は、多重ループの中でのスキップ方法についても勉強してみると面白いですよ!」
生徒
「多重ループ……少し難しそうですけど、頑張ってみます!まずは今回のcontinueをマスターして、自分のポートフォリオのコードを書き直してみようと思います!」