< | 左辺が右辺より小さいなら1、さもなくば0を表す。 |
> | 左辺が右辺より大きいなら1、さもなくば0を表す。 |
<= | 左辺が右辺より小さいか等しいなら1、さもなくば0を表す。 |
>= | 左辺が右辺より大きいか等しいなら1、さもなくば0を表す。 |
== | 左辺が右辺と等しいなら1、さもなくば0を表す。 |
!= | 左辺が右辺と等しくないなら1、さもなくば0を表す。 |
! | 否定 | !(a>b) として、 a>b なら0、さもなくば1を表す。 |
&& | かつ | (b<a)&&(a<c) として、 b<a かつ a<c なら1、さもなくば0を表す。 |
|| | または | (a<b)||(c<a) として、 a<b または c<a なら1、さもなくば0を表す。 |
文字通り if a>b ならば中括弧で囲まれた部分の命令が実行され、 さもなくば実行されない。optionに else 文がある。if( a>b ){ // execute some commands; }
if の条件が満たされない場合には else に続く中括弧で囲まれた部分の命令が実行される。 これで2分岐となる。 else の直後にさらに if 文をおくことで多分岐となる。if( a>b ){ // execute some commands; }else{ // execute some commands; }
最後の else 付属の命令は、それまでのすべての if 文の 条件が満たされない場合に実行される。if( a>b ){ // execute some commands; }else if( a==b ){ // execute some commands; }else{ // execute some commands; }
switch 文の小括弧 () に指定した整数の値が0に等しければ case 0 : 以降の命令が実行される。 break 文で switch 文の中括弧から実行は抜け出される。 この break 文が無いと次の case 1 : 以降の命令も実行される ことになる。すべての case に該当しない場合には default : 以降の命令が実行される。switch( n ){ case 0 : // execute some commands; break; case 1 : // execute some commands; break; default : // execute some commands; break; }
while ループでは繰り返し条件がループ上端で検査される。 この例では a<b の条件が満たされている間、中括弧で囲まれた部分 の命令が繰り返し実行される。条件が破れると中括弧以降の次の命令へと 実行は移される。while( a<b ){ // execute some commands; }
条件式として単に while(1) とすることがよくある。これは 無限ループとなる。後述の break 文を用いてループを強制終了する ことなる。この手法はループの条件が簡単には思い付かない場合には 便利である。
プログラムの実行が while ループに突入する時にもこの条件が 検査されるので、場合によってはループの中身が一度も実行されないことも ある。
while の小括弧の後のsemicolonを忘れずに。 do while ループの利点はループ突入時に繰り返しが判断できない 場合にも使えることである。結果的に、 do while ループでは最低1回は ループを回ることになる。do{ // execute some commands; }while( a<b );
for 文の小括弧 () には3つの項目領域があり、semicolonで それらを区切る。1番目の項目にはループ突入時の初期化作業を指定する。 この例では整数 i の値を 0 にしている。2番目の項目には ループ繰り返し条件を指定する。3番目の項目には、{}ループを 次の回に進める際の更新作業を指定する。この例では i の値を 1 増加させている。for( i=0 ; i<10 ; i++ ){ // execute some commands; }
for ループの動作を要約すると、ループ突入時に1番目の項目の作業が 行われて、次に2番目の項目の繰り返し条件が検査され、それが満たされて いれば中括弧内の命令が実行される。それが終ると、3番目の項目の更新作業 が行われ、また2番目の繰り返し条件が検査され、再び中括弧内の命令が実行 される。これを繰り返して、繰り返し条件が破れた段階でループから脱出して for ループ以降へと作業が移される。
各項目にはさらにカンマで区切ることにより 複数の作業を指定することができる。2番目の項目については、カンマで 並んだ作業のうち、最後の作業の結果が繰り返し条件となる。
for 文の1番目の初期化項目で for ループの中で走る指標 (running index)を宣言することもある。for( i=0, j=10 ; i<10 ; i++, j-- ){ // execute some commands; }
for( int i=0 ; i<10 ; i++ ){ // execute some commands; }
break 文は既に switch 文でも登場したが、この文で 実行はループ内から脱出され、ループ以降へと移される。 これはループ繰り返し条件以外の特別の 理由でループを終了する場合に使う。
continue 文でループ内の作業は一回飛ばされる。 或る回の状態ではループ内の作業を行いたくない場合に使う。for( i=0 ; i<10 ; i++ ){ // execute some commands; if( /* special condition */ ) break; }
for( i=0 ; i<10 ; i++ ){ if( i==5 ) continue; // execute some commands; }
これは多重ループの内側ループからある条件でループの大脱出を行う。 break 文ではループ1つしか抜け出せないので この目的には goto 文が有効である。for( i=0 ; i<10 ; i++ ){ for( j=0 ; j<10 ; j++ ){ if( /* special condition */ ) goto LOOP_OUT; // execute some commands; } } LOOP_OUT:;
goto 文の行き先の指定には任意の文字列のラベルを 使うことができる。ラベルをラベルとして扱うことの宣言はない。 ラベルの場所の指定は、ラベルの後ろに : (colon)を付ける。