今回やること
こんにちは!
今回は、多重ループや繰り返し処理を柔軟に行う方法をご紹介します!
今回のポイント
今回のポイントは以下の3点です!
- 多重ループ
- break
- continue
少ないですがどれも奥が深いです!
一緒に見ていきましょう!
多重ループ
多重ループとは?
多重ループとは、繰り返し処理の中で繰り返し処理を行うことの総称です。
繰り返し処理の中に繰り返し処理があるものを特に二重ループ、
二重ループの中にさらに繰り返し処理があるものを三重ループと呼んだりもします。
具体例を見ていきましょう!
二重ループの具体例
以下は九九の表を生成するために二重ループで実装している例です。
for文の中にfor文があります。このような形を多重ループと言います。(この場合は二重ループ)
処理としては、内側のfor文を外側のfor文で繰り返している形です。
プログラムは上から実行されるので、まず外側の a についてのfor文が実行されます。
for文は{ } 内の処理を繰り返すので、
まず、a = 1で、 bについてのfor文を繰り返す。
次に、a = 2で、 bについてのfor文を新しく繰り返す。
...
最後、a = 9で、 bについてのfor文を新しく繰り返す。
という処理になります。
なので、上の二重ループでの(a,b)の値の推移は以下のようになります。
(1,1)->(1,2)->...(1,9)
->(2,1)->(2,2)->...(2,9)
->(3,1)->(3,2)->...(3,9)
->..................->(9,8)->(9,9)
一つのループだけだと、作成するのが難しいものでも、
二つ以上のループを使用すると簡単に作成できるものも多いです。
ループ操作
もっと柔軟にループ処理を扱いたい!
「ループの途中で処理を終わらせたい。」「ループで特定の場合だけ処理を飛ばしたい」
など、処理したい場合があります。
例えば、九九の表だと、「5の段までの出力でいい」「3の段だけは飛ばしたい」などです。
そんな時に使える便利な機能が、break と continue です。
一つずつご紹介します!
break
break は、「途中でループを終わらせたい!」という時に使うフレーズです。
早速、具体例を見てみましょう!
左の図は、aが5の時、breakをするようにしています。
すると、aが6以降の時は処理されていません。
つまり、aが5の時、bについてのfor文の処理が終わった後、break文でforループの途中でfor文を抜けているのです。
対して、右の図は、aが5の時にbreakをするようにしていますが、bについてのfor文の中でbreak文を記載しています。
すると、bが6以降の時は処理されず、aについてのループは処理され続けています。
つまり、bが5の時、内側のforループのみを途中で抜けていることになります。
まとめると、break文は今処理されている1つのループを途中で抜ける動作をします。
内側のループ内でbreakした場合、内側のループだけ中断し、外側は今まで通り繰り返すことになります。
これがbreakの基本的な仕様です。
forループを例に挙げましたが、whileループでもbreakは同じように機能します。
continue
continueは「ループの次のサイクルにすぐ移動する」という処理になります。
具体例を見てみましょう!
左の図は、aが5の時、continueしています。
すると、aが5の時の処理のみが丸々スキップされていることがわかります。
つまり、aが5の時はcontinue文より下の処理をせずに、次のサイクルに進んでいます。
対して右の図は、bが5の時、continueしています。
すると、bが5の時の処理のみが丸々スキップされていますね。
つまり、bが5の時はcontinue文より下の処理をせずに、次のサイクルに進んでいます。
今繰り返しているループでの処理をとばしています。
まとめると、continueは今繰り返しているループの次のサイクルに移動する処理になります。
特定の処理を飛ばしたい場合などに有効な書き方です。
continueもwhile文でも同様の動作をします。
まとめ
いかがでしたでしょうか?
多重ループでしかできない処理や、ループを柔軟に動かす方法が学べたでしょうか?
では、今回のポイントのおさらいをしましょう!
お疲れ様でした!
これで繰り返し処理のお話は一旦終了です!
繰り返し処理こそプログラムの最強のツールなので、うまく使いこなせるようになりましょう!
Take It easy!
お疲れ様でした!