[O][Objective-C]forループとwhileループ、do〜whileループの違いを分かりやすくまとめてみる

Title
最近はObjective-Cの勉強が楽しくてしょうがなOlein編集長(@Olein_jp)です。

今回は、今まで意識してなかったのですが、ループ構文の違いについて理解が一歩進んだようなきがするので、それらをまとめてみることにします。

サクッと結論

まずはこの図を見てください。

Loop route

もうこの図を見たら違いは分かってしまいますね。そうです、答えはそういうことです。

違いを言葉で上手く説明できるか試してみる

全く自信はありませんが、これらの違いを言葉で説明してみます。

forループってのは、最初に初期化処理がきて、その次に条件処理、そして増減処理という流れで処理されます。

whileループも似ていますね。最初に初期化処理、そして条件処理と続きます。forループとの違いは、増減処理をメイン処理の中に書き込まないといかんことでしょうか?(と、誰かに問いかけてみる)

追記:2012年7月25日 09:50

勝手に誰かに問いかけてみたら、@thikasaさんからコメントをいただけました。ありがとうございます!

[tweet https://twitter.com/thikasa/status/227927948844478464 lang=’ja’]

こちらの記事には本当に基本中の基本しか書いていませんが、厳密に言うともっとたくさんの違いがあるらしいです。例えば、forループはループにコレクションが使えたり、whileは条件式や増減式が場合によって違ったりする時に使うらしいです!コメントお寄せいただきありがとうございました!

forループもwhileループも共通して言えることは、条件処理を行った後にメイン処理を行うというところでしょう。ということは逆にいうと条件処理で弾かれたらメイン処理は行われないということですね、はいはい。

その点、do〜whileループは違います。

最初にメイン処理を行い、それが全て終了した後に条件処理が行われます。そうです。forループとwhileループとはココが大きな違いですね。条件処理がメイン処理よりもあとに来るため、必ずメイン処理が行われます。

僕が最近、理解を進めたこれらループ構文の違いはこんな感じでしょうか。もっと他にも違いや利用用途の違いなどたくさんあるんだろうけど。

とりあえずはこういうことだ!!