JavaScript | continue文

JavaScript JavaScript
スポンサーリンク

実務的なユースケースでの continue 応用 を紹介します。


A) 配列処理を filter ではなく continue で効率よく処理するパターン

配列に大量のデータがある場合、条件を満たさない要素は continue でスキップし、重い処理を回避できます。

const data = [
  {id:1, score:45},
  {id:2, score:90},
  {id:3, score:70},
  {id:4, score:20},
];

// 60点以上だけ処理したい
for (const item of data) {
  if (item.score < 60) continue; // 条件を満たさなければスキップ
  // 重い処理や出力
  console.log(`id=${item.id} 合格!スコア=${item.score}`);
}
JavaScript

出力:

id=2 合格!スコア=90
id=3 合格!スコア=70

✅ ポイント:

  • filter を使うと新しい配列が作られるが、continue は配列を変えずに効率的に処理可能。
  • 「条件外は飛ばす」 → 「重い処理を無駄に回さない」がキモ。

B) ラベルなしで外側ループをスキップするパターン(フラグ利用)

ラベル付き continue を使わずに、フラグを使って外側ループの残り処理をスキップする方法もあります。

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

for (let i = 0; i < matrix.length; i++) {
  let skipOuter = false; // フラグ
  for (let j = 0; j < matrix[i].length; j++) {
    if (matrix[i][j] === 5) {
      skipOuter = true; // 条件に当たったら外側ループ残りをスキップ
      break;            // 内側ループだけ抜ける
    }
    console.log(`i=${i}, j=${j}, val=${matrix[i][j]}`);
  }
  if (skipOuter) continue; // 外側ループを次の回に進める
}
JavaScript

出力:

i=0, j=0, val=1
i=0, j=1, val=2
i=0, j=2, val=3
i=2, j=0, val=7
i=2, j=1, val=8
i=2, j=2, val=9

✅ ポイント:

  • 内側ループで条件に当たった場合、フラグを立てて内側を break し、外側ループは continue で次の回に進める。
  • ラベルを使わずに外側ループをスキップできるので、ラベル嫌いな人にはこちらが読みやすい。

C) 応用例:配列のバリデーションでスキップ + 処理継続

ユーザー入力の配列を処理する例。

const users = [
  {name:"Alice", active:true},
  {name:"", active:true},        // 名前なし → スキップ
  {name:"Bob", active:false},    // 非アクティブ → スキップ
  {name:"Charlie", active:true}
];

for (const user of users) {
  if (!user.name) continue;
  if (!user.active) continue;
  console.log(`保存します: ${user.name}`);
}
JavaScript

出力:

保存します: Alice
保存します: Charlie

✅ ポイント:

  • 複数条件でも、continue を連続で書くことでネストを浅くできる。
  • 条件を満たさない要素はどんどんスキップ。

まとめ

方法特徴利点
continue だけ内側ループスキップ単純で短く書ける
ラベル付き continue外側ループのスキップ短く書けるが可読性注意
フラグ + 内側 break + 外側 continueラベルなしで外側スキップラベルを避けたい場合に有効、可読性が高い
  • 実務ではcontinue は「条件を満たさない回をスキップして次へ進めたい」場面で頻出。
  • 深いネストの場合はフラグを使うと読みやすい。
タイトルとURLをコピーしました