JavaScript

【JavaScript】switch文を使っている時にループを抜け出す方法

本記事では、JavaScriptでswitch文を使っている時にループ処理を抜け出す方法について解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

ループ内にswitch文が使われている時のbreak

JavaScriptでループ処理を抜け出す時には「break」を使用します。しかし、switch文でも処理の終了地点に「break」をセットし処理を終わらせます。

このような場合、プログラムはどのような挙動を取るのでしょうか?実際にサンプルコードを用意したので確認してみましょう!

for (let i = 1; i <= 5; i++) {
  switch (i) {
    case 3:
      console.log("ループ処理(for)を抜けたい!");
      break;
    default:
      console.log(`仮変数iの値: ${i}`);
  }
}

/* コンソールログ *
 * 仮変数iの値: 1
 * 仮変数iの値: 2
 * ループ処理(for)を抜けたい!
 * 仮変数iの値: 4
 * 仮変数iの値: 5
 */

コンソールログを確認すると「case 3」でbreakが実行されても、ループ処理が止まっていないことが確認できます。つまり、このbreakはswitch文に対して有効と分かります。

ラベルを使ってループ処理を抜ける

先ほど、ループ内にswitch文がある状態でbreakを使うとswitch文に対して有効だと分かりましたが、ループ処理を抜けたい時はどうすれば良いでしょうか?

答えはループ処理の先頭に任意のラベル名を付与させ、そのラベル名を対象にしたbreakをセットします。

forSwitch: for (let i = 1; i <= 5; i++) {
  switch (i) {
    case 3:
      console.log("ループ処理(for)を抜けたい!");
      break forSwitch;
    default:
      console.log(`仮変数iの値: ${i}`);
  }
}

/* コンソールログ *
 * 仮変数iの値: 1
 * 仮変数iの値: 2
 * ループ処理(for)を抜けたい!
 */

コンソールログを確認すると「case 3」で実行されたbreakを最後に、何も表示されていないことが確認できます。つまり、今回のbreakはswitch文ではなくループ(for文)に対して実行されたことが分かります。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村