4-4 分岐処理 (4) -Select Case 文-

If 文は、

に応じて、プログラムの流れを2つに分岐させるものでした。

プログラムの流れを3つ以上に分けなければならないときは、【基礎課題 4-6】のように、If文の中にさらに If 文を書かなければなりません。その結果、プログラムの構造が複雑になってしまいました。

そこで、プログラムの流れを3つ以上に分ける場合に使うと便利な、Select Case 文の使い方を説明します。

【基礎課題 4-6】は、Select Case 文を使うと次のように書くことができます。

この命令は、下のような構造になっています。

Select Case 変数名
  Case 変数の値の範囲
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
  Case 変数の値の範囲
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
  Case 変数の値の範囲
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
  ・
  ・
  ・
End Select

解説

値がある範囲をもつ場合は、「6 To 8」のように、最小の値を先に、最大の値を後に書いて、間に「To」を書きます。

範囲は上下の値が決まっていなければならないので、例えば「6以上」のような範囲の指定はできません。

変数の値の範囲は、コンピュータの能力の許す限りいくつでも書くことができます。

範囲はきちんと分類して、重複がないようにしなければなりません。

【基礎課題 4-9】

【基礎課題 4-6】を、Select Case 文を使って作り直してください。

【基礎課題 4-10】

【基礎課題 4-7】を、Select Case 文を使って作り直してください。

Select Case 文には、Case Else を使った特殊な例があります。一番下の「変数の値の範囲」を Case Else と書いて、「今までに指定した範囲以外」という意味を表すことができます。

「診断」ボタンを押したときの処理

Select Case 変数名
  Case 変数の値の範囲
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
  Case 変数の値の範囲
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
  Case 変数の値の範囲
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
  ・
  ・
  ・
  Case Else
    変数の値がその範囲にあるときの処理1;
    変数の値がその範囲にあるときの処理2;
    変数の値がその範囲にあるときの処理3;
      ・
      ・
      ・
End Select

【応用課題 4-1】

年齢を入力してからボタンを押すと、次の料金表にしたがって入場料金を表示するプログラムを、Case Else をともなった Select Case 文を利用して作って下さい。

料金表
年齢 入場料金
6歳以上12歳以下 500円
13歳以上65歳以下 1000円
それ以外(5歳以下または66歳以上) 無料