〜ケースについて〜


■書式

■関連コマンド

   ケース中止     →  ケースを強制的に終了するときにケース範囲内で指定する。普通条件コマンドと共に使用する。


■機能


■引数

   〈条件式〉;実行するための条件を、関数変数、論理演算子(.not .and .or)などを使った計算式で指定する。

【注意】分岐コマンドや繰り返し中止コマンドは繰り返し範囲内で指定する。また、このコマンド単独で使用することはなく、
    条件コマンドなどと一緒に使用する。


テクニック1【メニューコマンドとケースコマンドの利用例】

さて、入力コマンドと分岐コマンドについてのところで解説しましたテクニック1【機能キー入力コマンドでの分岐の使用例】で、行き詰まるところが出てきます。まず、機能キーを多数設定した場合、分岐がやたらと多くなり、次にどの処理へと移行しているのかわかり辛くなること。また、分岐コマンドの性格上、分岐が終了した後の次の行の処理へと移行してしまうことです。

ここで活躍するのがケースコマンドです。また、キー入力コマンドの代わりにメニューコマンドを併用して使えば、一括処理は非常にわかり易いものになります。この処理系はよく使いますので、数学の公式を覚える感覚でマスターしてしまいましょう!!

サンプルプログラム3(抜粋)

(注;サンプルプログラムのなかで、一連の処理手順にあまり関係のないものは省いています。)

【リスト1】

1行目 メニュー   &年1,初期項目=2,文字選択=する¥        

       ,{0,5,19," 定期テスト 偏差値レーダー印刷 システム a",黄}¥

       ,{0,7,20,"◇◇◇  学年を選択して下さい。  ◇◇◇",水}¥

       ,{1, 9,31,"1:高校1年生",白}¥

       ,{2,11,31,"2:高校2年生",白}¥

       ,{3,13,31,"3:高校3年生",白}¥

       ,{4,15,31,"4:終了 ",白}¥

       ,{0,17,15,"矢印キーまたは番号を選んでRETキーを押して下さい。”,緑,点滅}

2行目 ケース開始  
3行目   ケース(&年1=1)         

      代入 &学年1=”1”         

      代入 &学年2=”\H1-”

4行目       ケース(&年1=2)         

          代入 &学年1=”2”

          代入 &学年2=”\H2-”

5行目       ケース(&年1=3)

          代入 &学年1=”3”   

          代入 &学年2=”\H3-”

6行目   ケース その他     

      分岐  処理終了1

7行目 ケース終了

【解説】

1行目;メニューコマンドによって、画面には

       定期テスト 偏差値レーダー印刷 システム

     ◇◇◇  学年を選択して下さい。  ◇◇◇

         1:高校1年生

         2:高校2年生

         3:高校3年生

         4:終了

    矢印キーまたは番号を選んでRETキーを押して下さい。 と表示されています。

2行目;ケースコマンドと7行目のケース終了コマンドで囲まれた範囲内で、変数&年1に代入された数に応じて

    以下で説明する処理を行います。

3行目;変数&年1に”1”が代入されているときに変数&学年1に”1”、&学年2に”\H1-”という文字列が代入されます。

4行目;変数&年1に”2”が代入されているときに変数&学年1に”2”、&学年2に”\H2-”という文字列が代入されます。

5行目;変数&年1に”3”が代入されているときに変数&学年1に”3”、&学年2に”\H3-”という文字列が代入されます。

6行目;変数&年1に”1〜3以外”の数字が代入されているときに名札 処理終了1に分岐します。

6行目   ケース その他     

      分岐  処理終了1

6行目は、(あまりしませんが...)論理演算子を使って次のようにもできます。

6行目   ケース (&年1<>(1 .or 2 .or 3))(→これも入れ子処理の一例です。)     

      分岐  処理終了1

7行目;ケース範囲を終了し、次の行の制御へと移行します。


【補足】

【ケースコマンドと分岐、条件コマンド】

【リスト1】の分岐コマンドをケースコマンドを使って【リスト2】のように書き換えてみましょう。

【リスト1】

1行目 画面表示 (10,14),"年度の年間行事予定表を作成します。(ENT:作成する ESC:しない)",白
2行目 名札 ミス1
3行目 機能キー入力 (9,10),カーソル=オフ,&確認
4行目 条件 (&確認=13) 分岐 処理1
5行目 条件 (&確認<>27 .AND &確認<>13) 分岐 ミス1
6行目 条件 (&確認=27) 分岐 処理5
7行目 名札 処理1

【リスト2】

1行目 画面表示 (10,14),"年度の年間行事予定表を作成します。(ENT:作成する ESC:しない)",白
2行目 名札 ミス1
3行目 機能キー入力 (9,10),カーソル=オフ,&確認
4行目 ケース開始
5行目    ケース (&確認=13)
6行目    分岐 処理1
7行目      ケース (&確認=27)
8行目       分岐 処理5
9行目    ケース  その他
10行目    分岐 ミス1
11行目 ケース終了
12行目 名札 処理1

いかがでしょうか?行は増えてしまいましたが、処理系がわかり易くなったと思われませんか?また、ケースコマンドではそれぞれのケース処理における分岐コマンドの処理ばかりか複数のコマンドの追加・実行ができます。これは分岐コマンドや条件コマンドと一番違うところです。

以上のことから、分岐、条件、ケースコマンドについての違いは、

★分岐コマンドはある条件のときに、ある処理を迂回したいときに使用する。

★条件コマンドはある条件のときに、ある処理を1つ行いたいときに使用する。

★ケースコマンドはある条件のときに、ある処理を2つ以上行いたいときに使用する。

と考えればよいでしょう。このことをポイントに分岐コマンドと条件コマンド、ケースコマンドを使い分けて下さい。


【応用】

ケースコマンドも繰り返しコマンドの入れ子処理と同様に、ケース範囲内に、更にケース範囲(ケースの入れ子)や繰り返し範囲などを指定することができます。この処理系を使えば、アイデア次第で非常に簡単で処理能力のある一括処理プログラムをつくることができます。どこかで挑戦してみてくださいね!!

年度更新や会社のシステムの変更などで一括処理を書き換えたいということがよく起ります。このときのために、一括処理プログラムはできるだけわかり易く、すぐに変更できるものでありたいですね。


目次に戻る



ホームページに戻る