STEP 3 - 繰り返し │ ├ forループ ├ インクリメント・デクリメント ├ while文 ├ do文 ├ ループのコントロール │ ├ break文 │ └ continue文 └ switch文 |
Written by Yuki. http://ftc.suki.net/ |
<forループ> 条件を満たすまで中の処理を繰り返す。 基本的にループ回数によってループの継続を判定する。 for(式1;式2;式3){ 命令1; 命令2; } 式1にはループで使用する変数に初期値を与える。これはfor文に入った時に一回だけ処理される。 式2にはループを繰り返す条件を与える。真ならループを継続、偽ならループ終了になる。 何も書かないと終了条件が無いので、無限ループとなる。 式3では、式1で初期化した変数のループ毎に変化する量を指定できる。 VBの for〜Next の Step句に相当するが、記述しないと変化しない。
<インクリメント・デクリメント> 変数の 1の増減を簡略化する。 i++ or ++i ' i = i + 1 i-- or --i ' i = i - 1 変数 iに 1を加算、または減算する。 加算することをインクリメント、減算することをデクリメントという。 for文の式3などで、1加える時に使う。この書き方は 1以外は無い。 ※++(--)を変数の前に付けるか後ろに付けるかで、微妙に変化がでる。 iに与える影響は同じだが、演算を行うタイミングが違う。 a=b++; ' aに代入してから、bに足す。 a=++b; ' bに足してから、aに代入。
<while文> 条件により、繰り返しを制御する。 while(式){ ' 括弧内の式にループの条件を指定する。何も書かないと無限ループになる。 命令1; 命令2; } 式が真ならばループを継続する。偽ならばループ終了。 whileのループは最初に式の真偽を判定する。 ※whileループでは、最初からループ条件が偽ならば、繰り返す処理は 1度も行わない。
<do文> 処理を実行した後で条件判定を行う。 do{ ' whileが doループの一部であることをはっきりさせる為に、 命令1; ' doループは処理内容が単文でも、中括弧を書く必要がある。 命令2; }while(式); ' do文は最後の whileと必ずセットになっている。 式が真ならば、ループを継続、偽ならばループ終了。 ※doループは、少なくとも 1回は繰り返す処理を実行する。
<ループのコントロール> ループの条件判定ではないところで、ループを制御する。 (1)break文 ループの条件判定を経ずにループから抜け出す。 for(i=0;;i++){ ' 何も書かれていない式2では、条件は常に真(無限ループ)。 if(i>=3) break; ' 終了条件を for文以外の場所で書いている事になる。 } ※多重ループの中で、break文で抜け出せるのは、それ自体が書いてあるループだけになる。 (2)continue文 ループの繰り返しを強制的に行う。 for(i=0;i<=3;i++){ if(i%2==1) ' 奇数だったら continue文によりループの頭にもどる。 continue; printf("%d\n",i); } continueにより跳び越される事をスキップという。 ※whileや doで使うと、一度ループの終わりまで跳んでから頭に戻る。 また、for文では、頭に戻ったときに式3を実行してしまう(ループした回数に数えられる)。
<switch文> 複数の分岐を指定できる。 switch(式){ ' 式は整数型のみ。 case 定数 1: ' int , char は使用可。float , double は使用不可。 命令 1; ' case後に分岐する定数を指定する。定数は整数型。 break; ' これの数だけ分岐できるが、必ず break文を入れなければならない。 default: ' 定数が一致しなかった時に実行される。else のようなもの。 命令 n; } ※定数が文字列の場合は「case 'A'」といった形になる。「case 1+2」という書き方はできない。 breakが無いと、命令を実行したのち、すぐ下の case を判定してしまう。
← ← Back to BeforeStep | Go to NextStep → → |