2016年5月19日木曜日

[C#] 制御文 - ループ(for, while, do〜while, foreach)

こんにちは。明月です。
前の投稿で分岐に関して勉強しました。今日は引き続いて制御文のループに関して勉強します。


ループは単語のいみとおりに繰り返す処理ということです。ループの種類は「for」、「while」、「do〜while」、「foreach」の4つがあります。


for 文


「for」文は初期化より終了条件が偽になるまで増減値を変換しながら繰り返す制御文です。





例を見ると「i」の変数に「0」の値を初期して「i < 10」の条件をチェックします。結果が「真」になるので「Console.WriteLine(i);」を実行します。文の処理が終わって増減式に行って「i」の値を増加(i = 1)します。
また「i < 10」の条件をチェックしてまた「真」になるので「Console.WriteList(i);」を実行します。そのままに「i」の値が「10」になるまで繰り返します。



while 文


「while」文は条件式が真になる間に繰り返す制御文です。





「while」文は「for」文の初期式と増減式が除いてるものです。上の例をみると「while」文には別に増減式がないので「i++」を除いたら無限ループ(ループが終わらない状態)になる可能性があるので気をつけてください。



do〜while 文


「do〜while」文は「while」と似ています。でも「while」は初めから条件式をチェックして繰り返しますが「do〜while」文は1回実行した後から条件式をチェックします。






「do〜while」文は条件をチェックして文を実行することではなく文を実行してから条件を繰り返すかをチェックするものです。
上の例を見るとwhileの場合は「i < 0」の条件に満たさないので「Console.WriteLine("while" + i);」が実行されなかったです。
でも「do〜while」文の場合は「Console.WriteLine("do while " + i);」を1回に実行した後に条件文をチェックするので「do while 0」が出力されました。


実際にプロジェクトする時に「do〜while」文は一般ループと流れが違うから判断がつかないことが多く発生します。それで「do〜while」文を使うのはお勧めしません。


foreach 文


配列またはリストの個数のほどに繰り返します。




「foreach」はデザインパタンの「iterator」パタンと関係があります。すなわち、配列の個数に繰り返しながら配列のデータを取り出して使えることです。




0 件のコメント