JavaScript | continue文

JavaScript JavaScript
スポンサーリンク

では、より 実務的な複雑データでの continue 利用例 を作ります。


実務シナリオ:社員データを処理して条件に合う人だけ出力・スキップする

想定データ:社員情報(部署・ステータス・評価)がネストした配列オブジェクトで格納されている場合。

const departments = [
  {
    name: "営業部",
    employees: [
      {name: "Alice", active: true, score: 85},
      {name: "Bob", active: false, score: 70},
      {name: "Charlie", active: true, score: 50}
    ]
  },
  {
    name: "開発部",
    employees: [
      {name: "David", active: true, score: 95},
      {name: "Eve", active: true, score: 60},
      {name: "", active: true, score: 80} // 名前が空
    ]
  }
];
JavaScript

目標:

  1. 名前が空 or 非アクティブはスキップ
  2. 評価(score)が 70 未満はスキップ
  3. 条件を満たす社員を「部署名 + 名前 + 評価」で出力

実装例

for (const dept of departments) {
  for (const emp of dept.employees) {
    // 条件1: 名前空欄 → スキップ
    if (!emp.name) continue;
    // 条件2: 非アクティブ → スキップ
    if (!emp.active) continue;
    // 条件3: 評価70未満 → スキップ
    if (emp.score < 70) continue;

    // 条件を全てクリアした場合だけ出力
    console.log(`${dept.name} - ${emp.name}: 評価 ${emp.score}`);
  }
}
JavaScript

出力結果

営業部 - Alice: 評価 85
開発部 - David: 評価 95
開発部 - Eve: 評価 60   ← これはスコア < 70 のため実際にはスキップされます

✅ 解説:

  • 複雑なネストデータでも continue は使える
  • 条件が多くても、ネストを深くせずに順番にスキップできる
  • 「条件を満たしたものだけ処理する」パターンは実務で非常に多い(データ検証、レポート出力、バッチ処理など)

応用:外側ループのスキップ(部署ごと飛ばす)

例えば、ある部署にスコア70以上の社員がいなかった場合、その部署の残り社員は処理せず次の部署に進めたい場合。

departmentLoop: for (const dept of departments) {
  let hasHighScore = false;
  for (const emp of dept.employees) {
    if (!emp.name || !emp.active || emp.score < 70) continue;
    hasHighScore = true;
    console.log(`${dept.name} - ${emp.name}: 評価 ${emp.score}`);
  }
  if (!hasHighScore) continue departmentLoop; // この部署に高評価社員なし → 次の部署へ
}
JavaScript

✅ ポイント:

  • 内側ループで条件に当たる社員がいなければ、フラグで判断して 外側ループもスキップ
  • ラベル departmentLoop で外側ループの continue を実現
  • 実務では「部署単位」「グループ単位」での条件チェックに便利

まとめ(実務向けポイント)

  1. ネストした配列・オブジェクトでも continue は有効
  2. 条件が複数でもガード節にして順番に書くと読みやすい
  3. 部署単位・グループ単位でのスキップはラベルやフラグで実現できる
  4. 実務で多い処理パターン:
    • データ検証・バリデーション
    • レポート出力で条件外を除外
    • バッチ処理で不要な処理をスキップ
タイトルとURLをコピーしました