2011年10月26日水曜日

あいだ

どうも、69と申します。

今回は「あいだ」について
だって人間だもん、ではありません。
好きだ!君が僕の全てだ!でもありません。


あいだみつをさんについてあまり知りません。
愛についてはもっと知りません。
では、今回の「あいだ」は何か?


「間」です。
マの悪い自分には辛い話ですが。。


「~の間・・・を繰り返す」という文です。
”FOR文”または”WHILE文”を使います。
使い分けは、終了条件によって変えるのかなと思っています。
詳しくはまた後で。

まず、”FOR文”の書き方です。

for ( 初期値 ; 条件式 ; ループカウンタ ) {
繰り返す処理;
}

と書きます。文字で書くと分かりにくいですが。。。

初期値から始まり条件を満たす間、ループカウンタを数えながら処理を行う

ということです。条件やループカウンタの設定などを間違えると一生終わりません!

for ( $i = 0 ; $i > -1 ; $i++ ) {
処理;
}
↑、一生終わりません。
初期値が”1”でそれを”1ずつ足していき”、終了条件が”-1”となっています。
”1”からどれだけ”1”を足しても”-1”にはなりません。


for ( $i = 0 ; $i < 20 ; $a++ ){
処理;
}

条件式は合っています。ただループカウンタを間違っているので、終わりません。
”$a”にいくら加算しても”$i”が”20”を超えません。

for ( $a = 0 ; $a < 20 ; $a++ ) {
print $a;
$a = 0;
}
条件式は合っています。ループカウンタも合ってます。
ただ、処理の中で”$a”を毎回初期化してしまうので、いくらやっても終わりません。
次に”WHILE文”の書き方です。

while ( 条件式 ) {
処理;
}
と書きます。

条件式を満たす間、処理を繰り返す

という意味です。
あ、言い忘れてました!!条件式は”IF文”でのと同じです。
では、どういう時に”FOR文”で、どういう時に”WHILE文”なのか?
ズバリ、

何回かはわからないが、条件を満たす間は処理を繰り返したいとき
または、無限ループを意図的に行いたいとき
そんなときは、”WHILE文”を使います。


あ、”WHILE文”の説明が少ないですね。
”WHILE文”では”FOR文”で言うところの「ループカウンタ」がありません。
なので、処理の中で行います。



$a = 0;
while ( $a == 10 ) {
print $a;
$a++;
}

初期値を”$a=0”、終了条件を”$a==10”、ループカウンタを”$a++”としていますね。
これだと、”FOR文”とほぼ変わらないですな。
ですが、後述する”BRAKE文”と”WHILE文”を組み合わせると

while ( 1 ) {
$i++;
if ( $i >= 100 ) {
break;
}
}
これだと、

”$i”の初期値はわからないけど、”$i”が”100”以上になったら終了です。

という風になります。何回繰り返すかわからないが100で終わり、となります。
では、次は”BRAKE文”です。
勘のいい人や英語がわかる方は、もうおわかりかもですが。。

強制的に、繰り返しを終わらせる

 ということをします。似たものに”CONTINUE文”があり

CONTINUE文以下の処理を行わず、カウンタをプラスしループの頭に戻る

という処理を行います。
”BRAKE文”は主に”WHILE文”で使われて
”CONTINUE文”は”FOR文”で使われるのかな~と思います。

for ( $i = 0 ; $i <= 10 ; $i++ ) {
if ($i ==2 ) continue ;
print $i ;
}
これは”$i”が”2”の時だけ”print $i ;”を行わないという処理です。

0 件のコメント:

コメントを投稿