IF文の使い方
IF文の使い方についてRPGとCを比較して見ましょう!
RPGでのIFの使用法は以下の通りです。
XXXXX IFEQ ZZZZZ
ENDIF
IFの条件には、EQの他に、NE,GT,GE,LT,LEがあります。
また、複合条件を指定したい場合は、OR,ANDで行を対します。
XXXXX IFEQ ZZZZZ
XXXXX OREQ ZZZZZ
XXXXX ANDEQ ZZZZZ
ENDIF
もちろん、ELSE文も使えます。
XXXXX IFEQ ZZZZZ
XXXXX OREQ ZZZZZ
XXXXX ANDEQ ZZZZZ
ELSE
ENDIF
比較する左側 XXXXXX と右側 ZZZZZZ は同じデータタイプであることが必要です。
CでのIFの使用法は以下の通りです。
if (1) 単一の実行文;
if (1) {
実行ブロック;
}
実行する範囲は、一文の場合は続けて記述し、文の終わり ';' を付け、複数の文を実行する場合には、{ } で囲みます。
if の次に来る ( )の中に式をいれます。式の結果が 0 でない場合に実行されます。
上記のように、(1) とすると式の評価が必ず 0 でないので実行されます。逆に (0) なら実行されることはありません。
式に利用出来る演算子は、さまざまなものが用意されています。
参照マニュアルILE C/400 プログラマー解説書
演算子名 | 結合度 | 演算子 |
1次 | 左から右 | () [ ] . -> |
単項 | 右から左 | ++ -- - + ! 〜 & * (型名) sizeof digitsof, precisionof |
乗除 | 左から右 | * / % |
加減 | 左から右 | + - |
ビット単位のシフト | 左から右 | << >> |
関係 | 左から右 | < > <= >= |
等値 | 左から右 | == != |
ビット単位の論理AND | 左から右 | & |
ビット単位の排他OR | 左から右 | ^ |
ビット単位の包含OR | 左から右 | | |
論理AND | 左から右 | && |
論理OR | 左から右 | || |
条件 | 右から左 | ? : |
代入 | 右から左 | = += -= *= /= <<= >>= %= &= ^= = |
コンマ | 左から右 | , |
全て解説はできませんので、詳細はマニュアルなどを参照して下さい。
式には複数の条件をつづけて記述できます。そのため演算子の優先順位と評価順は大変重要になります。
上記の表は、優先度の高い演算子順に並んでいます。
例)
では、以下の if は実行されるでしょうか?(式の評価は、0 でしょうか?)
x = 0, y = 1, z = 2 とします。
if ( z = x = y )
if ( x || y )
if ( x && y )
if ( x++ )
if ( ++x )
if ( !x )
if ( x += y )
if ( x *= y )
if ( (x > y) ? x : y; )
つづく...
|