本記事では、JavaScriptでswitch文を使っている時にループ処理を抜け出す方法について解説しています。
JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!
綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
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文)に対して実行されたことが分かります。