概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C ループする制御
2006年07月19日 (水) | 編集 |
ループというか、同じ処理を繰り返すような文の書き方だ。
for文とやらを使うらしい。最初のHelloを10回繰り返すprintf構文に出てきたな。
あれはHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloと表示する文ではなく、Helloを10回繰り返して表示する文だったわけだ。


ループとか繰り返しとか円環とか環とかは結構好きなシチュエーションだから頑張るぜ。
物語の中くらい、永遠があってもいいじゃないですか。


後味良けりゃな。

まあ個人的な嗜好はさておいてもそれなりに面倒そうな文ではあるが。
いきなり形式から、というのもアレだがfor文の書式から見ていこう。

for (式1;式2;式3){

}

こんな感じだ。

式1は最初に与えられる条件で、初期化式と言う。初期化ってのはPCやっていれば聞く単語だと思うが、プログラムで言うところの初期化は、データを設定された変数の最初の値を確定させることを意味するそうだ。よく分からんな。ま、普通の初期化と大した違いはなさそうだからイメージで捉えておけばいいだろう。初期化により与えられた値を初期値と呼ぶぜ。

式2はループから抜け出す為の条件を意味する。式2を満たさないようになったらループはおしまい、というわけだ。EDはすぐそこってことでこの式で表現される条件を終了条件とか呼ぶ。式2を満たしている間は続く、なのでどっちかっていうとループ条件なんだがなあ。
ま、いいや。

式3は式1で初期化した値などを再初期化する為の式…とかあるがいまいちよくわからん。要するに式1をどうやって変化させていくか、というのが役割だと思った。この式は増減式と呼ばれる。


for文は、何かを決められた回数繰り返す、という所定回反復によく使われる。

例:
for (i=1;i<=10;i++){
}

という文の場合、iを1から始め、iが10以下の間、iを++(+1するという意味)しながら繰り返すことを意味する。つまり、iが10になるまで10回繰り返すということだ。

このfor文の中で使われている変数はループ変数とも呼ばれたりするが、これはfor文が使うためにこっちの方で勝手に変えたりしてはいけないらしい。ループ変数はint型以外にもchar型やdouble型も使えるそうで、変化の仕方も+1だけでなく様々な値があるそうな。
以下に例を挙げよう。

for (i=10;i>0;i--) 
iを10から始め、-1しながらiが0になるまで繰り返す

for (c='a';c<='z';c++) 
cをaから始め、zまで繰り返す

for (x=0.0;x<=360.0;x=x+10.0) 
xを0.0から始め、+10.0しながら360.0まで繰り返す

色々あるが、どれも一定回数繰り返す、という点においては変わらんのじゃないかね。


実際やってみる。

for (i=10;i>0;i--)文
looptest.jpg数えていると目疲れてくるのでラの文字だけ見ている
10、9、8、7、6…、0といくので10回繰り返す。


for (c='a';c<='z';c++)文
looptest3.jpg26+1回繰り返している
a、b、c、d、e、f、…zといくので26回繰り返す。


for (x=0.0;x<=360.0;x=x+10.0)文
looptest5.jpg数えるのしんどいので実は未確認
0.0、10.0、20.0、30.0、40.0、50.0…360.0といくので36回繰り返す


やはり変わらん。
文字、整数、少数問わず、所定の回数を与えられた条件を満たす間は繰り返す。


まとめよう。

ある文を決められた回数繰り返したい時はfor文を使う
for文は初期値終了条件増減式から成り立つ
for文で使われる変数はユーザーが勝手に弄くってはならない
for文で使われる変数はint型のみならずcharやdouble型も使える


以上。これだけ見れば簡単なんだが、この文はif else文とかとも組み合わされたりするので中々複雑だぜ。というかループって時点で数学的には数列系の知識が要求されるしな。ちなみに数列は苦手分野だったが。

ま、嘆くな逃げるな臆するな。いずれ理解の内に収まる日も来るだろう。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。