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