Select Case文

 条件により処理を分岐させるIf文を見てきましたが、処理を分岐させるステートメント(命令)として、SelectCase文もあります。このステートメントは、評価対象となる式の値を基に、処理を分岐させます。

Select Case文の書式
Select Case 評価式
 Case 式1
  処理1
 Case 式2
  処理2
 …
 Case Else
  処理n
End Select

Select Case文
Select Case文

○ プロジェクト

 次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 SelectCaseTest1

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '変数の宣言
  3.  Dim str As String
  4.  'データを入力
  5.  Console.Write("「平日」か「休日」を入力してください:")
  6.  str = Console.ReadLine()
  7.  '入力データによって処理を分岐
  8.  Select Case str
  9.   Case "平日"     '平日の場合
  10.    Console.WriteLine("今日は仕事があります。")
  11.   Case "休日"     '休日の場合
  12.    Console.WriteLine("今日は遊びに行きましょう。")
  13.   Case Else     'その他の場合
  14.   Console.WriteLine("今日は家でおとなしくしていましょう。")
  15.  End Select
  16.  Console.ReadLine()
  17. End Sub

○ フローチャート

○ 実行結果

「平日」か「休日」を入力してください:平日
今日は仕事があります。
----------------------------------------
「平日」か「休日」を入力してください:休日
今日は遊びに行きましょう。
----------------------------------------
「平日」か「休日」を入力してください:その他
今日は家でおとなしくしていましょう。

○ 解説

 12行目で入力したデータを評価対象としてSelect Case文にセットします。そのデータを複数のケースで比較していきます。もしいずれのケースにも当てはまらなかった場合はCase Elseの部分が実行されます。また、このCase Elseは省略するともできます。

 Select Case文で指定できる評価式は、Integer、Dobule、Stringなど基本データ型を指定することができます。またCase文で指定できる式として、次のようなものがあります。

例:

○ プロジェクト

 次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 SelectCaseTest2

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '変数の宣言
  3.  Dim age As Integer
  4.  '年齢を入力
  5.  Console.Write("年齢を入力してください:")
  6.  age = Console.ReadLine()
  7.  '入力された年齢に応じてメッセージを表示
  8.  Select Case age
  9.   Case Is < 6
  10.    Console.WriteLine("就学前です。")
  11.   Case 6 To 12
  12.    Console.WriteLine("小学生です。")
  13.   Case 13 To 15
  14.    Console.WriteLine("中学生です。")
  15.   Case 16 To 18
  16.    Console.WriteLine("高校生です。")
  17.   Case 19 To 24
  18.    Console.WriteLine("大学生です。")
  19.   Case Else
  20.    Console.WriteLine("社会人です。")
  21.  End Select
  22.  Console.ReadLine()
  23. End Sub

○ フローチャート

○ 実行結果

年齢を入力してください:4
就学前です。
---------------------------------------------------------------------------
年齢を入力してください:8
小学生です。
---------------------------------------------------------------------------
年齢を入力してください:14
中学生です。
---------------------------------------------------------------------------
年齢を入力してください:16
高校生です。
---------------------------------------------------------------------------
年齢を入力してください:20
大学生です。
---------------------------------------------------------------------------
年齢を入力してください:33
社会人です。

○ 解説

 12行目で入力した年齢を評価対象としてSelect Case文にセットします。そのデータを複数のケースで比較していきます。13行目のケースでは評価対象が6より小さいかどうかを判断しています。15行目のケースでは変数ageが6~12の場合は16行目を実行します。17行目のケースでは変数ageが13~15の場合は18行目を実行します。19行目のケースでは変数ageが16~18の場合は20行目を実行します。21行目のケースでは変数ageが19~22の場合は22行目を実行します。23行目のケースではその他の場合は24行目を実行します。

前へ   次へ