目次

条件分岐処理

 構造化プログラムを実現するには、次の3構造が備わって
 いることが、必要です。

 順次処理は、実行すべき内容を並べていけばよいので
 ワードを上から下に並べるだけ。

 選択は、条件判定と分岐処理の組合せで実現できます。

 Forthインタプリタの場合、条件分岐処理で使うワードは以下。

 flag if ... then
 flag if ... else ... then

 条件判定でフラグをスタックに入れて、フラグで真、偽を指定。
 真の場合、ifとthenに挟んだワードを実行。
 偽の場合、elseとthenに挟んだワードを実行。

 真、偽の値は、各々−1と0にされています。

 フラグの判断は、以下で確認できました。



 条件分岐処理は、ワードの中に入れて使います。



 比較に利用するワードをリストしてみます。

 単精度の比較は、以下。

 倍精度の比較は、以下。

 比較によるフラグを使う他に、多方向分岐にワード case を
 使うこともできます。

 caseの説明は、以下。

  n case
         m1   of ... endof
         m2   .. ... .....
         flag  ?of ... endof
	 all others
  endcase

   case            ( n -- n )       Begins case structure
   of              ( m -- )         Compares m with n, choose this if n=m
   ?of             ( flag -- )      Flag-of, for custom comparisions
   endof           ( -- )           End of one possibility
   endcase         ( n -- )         Ends case structure, discards n

 一見しただけでは、意味がわからなかったなら
 実際にワードを定義して使ってみるのがよいと
 思います。




 スタックにある値と一致したときに、of ... endofで挟んだ
 ワードを実行すると、理解できます。

 構造化プログラムを実現するのは、if ... thenの単独には
 ならないので、後で説明します。


目次

inserted by FC2 system