● ステートメントリファレンス

read 、data 、restore 応用例

read と data を使って、複数の条件分岐を纏める事ができます。

例1.

    $cmp
        data  件数
        data  条件A , 条件B , 条件C , ...

        restore $cmp : read cnt
        for i = 1 to cnt
            read comp_result : break comp_result = 0
        next
        if i > cnt then
            真の場合の処理
        else
            偽の場合の処理
        endif

この処理は 条件A ∧ 条件B ∧ 条件C ∧ … を実行します。
条件A ∨ 条件B ∨ 条件C ∨ … の場合は次のようになります。

例2.

    $cmp
        data  件数
        data  条件A , 条件B , 条件C , ...

        restore $cmp : read cnt
        for i = 1 to cnt
            read comp_result : break comp_result <> 0
        next
        if i <= cnt then
            真の場合の処理
        else
            偽の場合の処理
        endif


on 〜 goto や on 〜 gosub と組み合わせる事で、条件に応じて個別の処理へジャンプさせる事もできます。件数が多い場合は、条件分岐の羅列よりも見易いコードにする事ができます。

例3.

    $select_case
        data  件数
        data  条件A , 条件B , 条件C , ...

        restore $select_case : read cnt
        for i = 0 to cnt - 1
            read comp_result : break comp_result
        next
        if comp_result = 0 then $default
        on i goto $処理A , $処理B , $処理C , ...

    $処理A

        条件A についての処理

    $処理B

        条件B についての処理

    $処理C

        条件C についての処理

               ・
               ・
               ・

    $default

        どの条件にも当てはまらない場合の処理