MPC2000 Reference Manual
[JAPANESE]
[ENGLISH]
【ステートメント】
【制御文】
【使い方】
IF-THEN-ELSE-END_IF
IF SW(0)==1 THEN : ON 0 : END_IF
IF SW(0)==1 THEN : ON 0 : ELSE : ON 1 : END_IF
【書 式】
【機 能】
IF arg THEN
条件分岐
【解 説】
arg(論理式)が0でない場合THENの後ろを実行。0の場合は、ELSEの後ろを実行するか、END_IFの後ろへジャンプ
論理式とは、A==1,A!=1,A<0 等比較演算子で構成された式で、結果はTRUE,あるいはFALSEとなります。
論理式と算術式にはとくに区別はありません。比較演算子には、==,!=,>=,<=,>,<があります。
たとえば、
IF A-2 THEN : print A :END_IF
の場合Aが2以外であれば数値が表示されます。
論理結合は以下のように行います。論理演算には、論理積、論理和、排他的論理和の三種類がありそれぞれ&,|,^の記号を用います。
a==1&(b==1)|(c==1)^(d==2)
比較演算を()でくくってあるのは、それぞれの比較演算の結果を&|^するという意味になります。
また、最初のa==1に括弧がないのは、演算は必ず左から実行されるためです。
ここで、特定の演算を先に行いたい場合は、以下のようにさらに括弧でくくります。
a==1&(b==1)|((c==1)^(d==2))
ここで変数をSW()に置き換えることもできます。
(SW(n1)==1)&(SW(n2)==1)|(SW(n3)==1)^(SW(n4)==1)
また、SW(n)は0/1の値しか持たないため、以下のように省略することができます。
SW(n1)&SW(n2)|SW(n3)^SW(n4)
負論理(SW((n1)==0)の場合は、@SW(n1)を用います。@SWはSWと逆の論理を返します。
このように論理式は、演算子と適切な括弧付与で複雑な論理を構成することができます。
しかし、論理式があまりに長くなると、後の読み返しで意味がわからなくなる場合があります。
こうした場合は、論理式をまとめたものをAND,OR,XORといった接続子で結合することができます。
IF SW(n1)&SW(n2)|SW(n3)^SW(n4) AND a==1&(b==1)|((c==1)^(d==2)) THEN : print A : END_IF
ここではI/Oの論理式と変数の論理式の論理積で、TRUE,FALSEを判断することができます。
しかし、この論理接続子には優先順位がなく、かならず前方から演算します。
したがって IF A-logic OR B-logic OR C-logic XOR D-logic THENという構文で、C-logic XOR D-logic を先に行いたい場合は、順序を工夫します。
IF C-logic XOR D-logic OR A-logic OR B-logic THEN という順序に配置しなおします。
あるいは、論理式の結果は変数に代入できるため、
A=logic-A : B=logic-B
IF A|B THEN というまとめ方も可能です。
なお、AND OR XORは、数値としての論理演算となりますので、各論理式が0,1以外の値を持つ場合は扱いに注意してください。
注)IF KARA==0 OR (KARA==2 AND A995==1) THEN というような構文は記述できません。
[LASTMODIFY]2017-08-31 19:01:50
[CREATEDATE]2007-07-20 20:02:19
MPC2000 Reference Manual -R5.11-
(C)2007 ACCEL Corp. all right reserved.