プログラミングの基礎中の基礎、根本的な部分である、ループ処理について解説します。
ループって怖いよね・・・。
??? 便利だよ?(マジメ)
この記事はこんな人向け
- プログラミングを始めようとしている
- SEやプログラマーを目指している
- プログラムの考え方を知りたい
ループ処理とは
ループ処理と聞くと人によっては難しく聞こえるかもしれません。
実態はわりと単純で、「繰り返し同じ行動をすること」がループ処理です。
呼び方は「ループ」でも「ループ処理」でも「繰り返し処理」でも何でもいいです(笑)。
日常生活でのループ処理(行動)
ループと言えば、時間が戻って同じ日を繰り返すとか、ずっと同じ所をぐるぐる歩いている、みたいな現象を想像してしまいますよね。
こんな特殊な現象でなくとも、我々人間は日常生活でも意識せずループしている行動があったりします。
例えば、呼吸や徒歩といった動作です。
これらは特に意識せずとも、毎回同じように行えている動作ですよね。
こういった短調な繰り返しの行動も、ループ処理として解釈するとイメージがつきやすいと思います。
全く同じことを繰り返すことは少ない
とはいえ、人間だれしも全く同じ行動をループしてるわけではないですよね。
呼吸という行動のループの中でも、呼吸の深さや鼻呼吸か口呼吸かなどなど、細かく見ればやり方は色々と変化しています。
ループ処理しつつも、その中で行動を微妙に変えているということですね。
ここがプログラムとは異なる部分でもあり、と同時にある意味似ている部分でもあります。
プログラミングでのループ処理
プログラムでループさせる方法は何通りか存在しており、目的によって適したループ方式を採用します。
複数のループ方式の中で共通しているのは、ループを続ける条件(もしくは抜け出す条件)の指定が必要ということです。
ループ条件
ループ処理をいつまで続けるか(ループを終わる条件)というのを機械に教えてあげる必要があります。これをしないと、永遠に同じ動作を繰り返す、いわゆる無限ループに陥ってしまいます。
ループを終わる条件といっても、そんなに難しいものではありません。
例えば人間で考えると、階段を登っているとしましょう。階段の段数はわかりませんが、上りきるまで上る動作を止めませんよね(まあ休憩するかもですけど)。
そして上りきった(=もう上る段がない)時に上る動作をやめますよね。
プログラムも似たような感じで、「階段を上りきったら、上る動作を止める」というループ条件を指定してあげればOKです。
ループで一番大事なのはループ条件です。日常生活では繰り返し行動の終了条件なんて意識せずに過ごしてきたと思います。
しかしプログラミングの世界では必須となる考え方なので、日常でループを見つけたら終了条件について少し考えてみるのも特訓になるのでおすすめです。
無限ループに注意
上で話した階段を上るループ処理について、ループ条件を指定していないと無限ループに陥ります。
もう上る段が無いにも関わらず、永遠に上る動作を繰り返してしまうのです。
(プログラムが強制終了されるまで・・・)
階段を上るのが人間ならば、いい感じに解釈してくれて階段を上りきった所で動作をやめます。
が、これがロボットの場合はプログラムで動いているので、階段を上りきっても上る動作をやめないんです。
ロボットが階段の上でずっと同じ動きをしているのが想像できますよね?(笑)
このような事態が起こるため、プログラムでは基本的に無限ループを入れることはありません。
まあユーザーには無限ループに見えていても、プログラム内ではきちんと終了するループをいくつも組み合わせてユーザーには無限ループに見せかけているとか、複雑な作りをしているものもあります。
この辺はプログラミングを勉強していくと、自ずとわかってくるようになりますのでご安心を。
コメント