Подробное рассмотрение. Выбор из нескольких вариантов с помощью оператора Select Case

Обновлен: Ноябрь 2007

На этом занятии будет описано использование оператора Select Case для запуска кода в зависимости от нескольких условий.

На предыдущем занятии было показано, как использовать инструкцию If...Then для выполнения различных блоков кода при различных условиях. Хотя в операторе If...Then при помощи ключевого слова ElseIf возможно проверить более двух условий, оператор Select Case обеспечивает гораздо более хороший способ проверки нескольких условий.

Оператор Select Case позволяет использовать столько условий (или случаев), сколько требуется, делая удобным написание кода для ситуаций, в которых имеется множество вариантов. Например, предположим, что программа использует переменную String для хранения выбора цвета и требуется получить значение цвета. Код оператора Select Case может выглядеть следующим образом:

Select Case Color
  Case "red"
      MsgBox("You selected red")
  Case "blue"
      MsgBox("You selected blue")
  Case "green"
      MsgBox("You selected green")
End Select

При выполнении этого кода строка Select Case определяет значение (Color) в выражении. Предположим, что Color является переменной типа String и что эта переменная является параметром для метода, содержащего оператор Select Case. Значение Color затем сравнивается со значением в первом операторе Case. Если значение соответствует, выполняется следующая строка кода, затем выполнение переходит к строке End Select; если же значение не соответствует, проверяется следующая строка Case.

Оператор Case может принимать много различных форм — в примере выше он работает с переменной типа String. Однако, он может быть любым типом данных или выражением.

Диапазон чисел можно проверить с помощью ключевого слова To следующим образом:

Case 1 To 10

В этом примере любое число между 1 и 10 приведет к совпадению с условием.

Можно также оценить несколько значений в одном операторе Case, разделяя их запятыми, как показано ниже:

Case "red", "white", "green"

В этом примере любое из трех значений приведет к совпадению с условием.

Можно также использовать операторы сравнения и ключевое слово Is для вычисления значений, как показано ниже.

Case Is > 9

В этом примере любое число больше 9 приведет к совпадению с условием.

Case Else

Приведенный выше пример работает, когда известны все возможные условия, но что случится, если имеется условие, которое не было учтено? Например, если бы значение Color было равным yellow, в коде произошла бы проверка трех случаев, соответствия бы не нашлось, и окно сообщения не было бы отображено.

Оператор Case Else можно использовать для выполнения кода, если не было найдено соответствие, как в следующем примере.

Select Case Color
  Case "red"
      MsgBox("You selected red")
  Case "blue"
      MsgBox("You selected blue")
  Case "green"
      MsgBox("You selected green")
  Case Else
      MsgBox("Please choose red, blue, or green")
End Select

Если значение Color в приведенном выше коде равно yellow, оно сравнивается с первыми тремя строками Case и совпадений не обнаруживается. При достижении строки Case Else выполняется следующая строка кода перед перемещением выполнения к строке End Select.

Для использования оператора Select Case

  1. В меню Файл выберите команду Создать проект.

  2. В диалоговом окне Создание проекта в области Шаблоны выберите Приложение Windows.

  3. В поле Имя введите SelectCase и нажмите кнопку ОК.

    Откроется новый проект Windows Forms.

  4. Из Панели элементов перетащите один элемент управления TextBox и один элемент Button на форму.

  5. Дважды щелкните кнопку, чтобы открыть редактор кода.

  6. В обработчике событий Button1_Click введите следующий код.

    Dim Number As Integer = CInt(Textbox1.Text)
    Select Case Number
      Case 1
          MsgBox("Less than 2")
      Case 2 To 5
          MsgBox("Between 2 and 5")
      Case 6, 7, 8
          MsgBox("Between 6 and 8")
      Case 9 To 10
          MsgBox("Greater than 8")
      Case Else
          MsgBox("Not between 1 and 10")
    End Select
    
  7. Нажмите клавишу F5 для запуска программы.

  8. В текстовом поле введите число и нажмите кнопку.

    Появится окно сообщения, отображающее текст в операторе Case, соответствующий введенному номеру.

Следующие действия

В этом разделе было показано, как использовать оператор Select Case для выбора между несколькими условиями. На этом этапе можно перейти к следующему занятию "Что делать, если что-то работает неправильно: обработка ошибок".

Следующее занятие: Что делать, если что-то идет не так. Обработка ошибок

См. также

Задачи

Что делать, если что-то идет не так. Обработка ошибок

Программный выбор между двумя возможностями. Оператор If... Then

Ссылки

Оператор Select...Case (Visual Basic)