continue, breakについてです。
breakについては以前switch文で使用しました。
switch文で使用したbreakは、switchで一致した処理以降を実施しないためでしたね。覚えていない方はswitch文を理解しようを参考にしてください。
考え方は基本的に同じなので軽くみていきましょう。
とりあえずざっくり説明します。
- continue
3人であるゲームをします。ルールは、1~10の数字が書かれた紙10枚を箱に入れて、一人ずつ1枚引きます。その時、紙に書かれている数字の値が大きい方が勝ちというゲームです。そして、そのゲームを10回するとします。この時、最初に10を引いた場合、残りの2人は数字を引く必要がありません。負けが確定しているので引く必要がないのです。
このように、残りの処理を実施する必要がない時、実施したくない場合に、残りの手順を飛ばすことがcontinueです。
continue後は次の2回戦目に入ります。
例)
1人目「あ、俺10引いた」
2人目、3人目「俺ら引く必要なくね?絶対勝てないし。もう次の試合始めようぜ!」←これがcontinue
- break
breakはループ内で使用した場合、繰り返し処理を終了します。
10回戦のゲームの1回戦目でbreakを実施した場合は残りの9回戦は行われません。
10回戦中先に6回先に勝利した場合は残りの試合をする必要がないのでそこで
ゲームは終了となりますね。これがbreakです
例)
1人目「もう俺初回から6連勝したわ。」
残りのメンバ「ハァ!?もう勝ち目ないし。残り4戦する意味なし!終了ー!」←これがbreak
では、continueとbreakのサンプルプログラムを作成しましょう。
- continue
1~100までを連続で表示するが、偶数の時は表示処理をcontinueするプログラム
123456for(var i=1; i < 101; i++){if(i % 2 === 0){continue; //2で割り切れる(偶数の場合はcontinue)}console.log(i);} - break
1~100までの数字を連続で表示するが、偶数の場合はbreakするプログラム
123456for(var i=1; i < 101; i++){if(i % 2 === 0){break; //2で割り切れる(偶数の場合はループを抜けるbreak)}console.log(i);}実際にプログラムを入力して動きを見てみましょう。
continueのサンプルプログラムは2, 4, 6,が表示されないことがわかると思います。ただ、処理自体は継続して100回ループ処理が動いていることが理解できると思います。
一方break文のサンプルプログラムは1しか表示されません。
1の次のループで2(偶数)となるため、for文からbreakで抜けるため1しか表示されません。
continueとbreakについて理解できたでしょうか。
課題
- 掛け算の九九表を出力するプログラムを書いてください。
※結果は1列表示で構いません - 掛け算の九九表を奇数の段のみ表示してください。
※結果は1列表示で構いません - 下記のような掛け算の九九表を表示するプログラムを書いてください
※結果は1列表示で構いません
1×1=1 | 2×1=2 | 3×1=3 | 4×1=4 | 5×1=5 | 6×1=6 | 7×1=7 | 8×1=8 | 9×1=9 |
2×2=4 | 3×2=6 | 4×2=8 | 5×2=10 | 6×2=12 | 7×2=14 | 8×2=16 | 9×2=18 | |
3×3=9 | 4×3=12 | 5×3=15 | 6×3=18 | 7×3=21 | 8×3=24 | 9×3=27 | ||
4×4=16 | 5×4=20 | 6×4=24 | 7×4=28 | 8×4=32 | 9×4=36 | |||
5×5=25 | 6×5=30 | 7×5=35 | 8×5=40 | 9×5=45 | ||||
6×6=36 | 7×6=36 | 8×6=48 | 9×6=54 | |||||
7×7=49 | 8×7=56 | 9×7=63 | ||||||
8×8=64 | 9×8=72 | |||||||
9×9=81 |
宿題
下記プログラムには問題があります。
どのような問題が答えてください。
1 2 3 4 |
while(true){ continue; break; } |