読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

"break label"構文でループから任意のタイミングで抜ける

javascript/node.js

"break label"構文はforやwhileといったループから抜ける事ができる書式です。
悪名高きgoto文そのものの記法ですが、ネストしたループから特定条件で離脱したい場合などには
かえってシンプルに書くことができたりします。
使いドコロを理解していれば、それほど忌み嫌うものでもありません。

実際のところ

以下の例では、渡したデータにnullが入っていた場合、エラーを出力して離脱してみました。

var z = [[1,null,3],[4,5,6,7,8]];
labelCancelLoops: for (var i = 0, mainlen = z.length; i < mainlen; i++) {
  console.log("************");
  for(var j = 0, sublen = z[i].length; j < sublen; j++) {
    if (!z[i][j]) {console.log("BAD CASE"); break labelCancelLoops;}
    console.log("value: " + z[i][j]);
  }
}

/*
************
value: 1
BAD CASE
*/