Что такое Select Case?
Select Case - это условный оператор, который помогает вам проверить переменную на равенство с набором значений. Каждое значение называется случаем, и переменная, которая включается, должна быть проверена для всех выбранных случаев.
Оператор Select Case предоставляет вам простой способ проверки содержимого переменной. Однако он подходит для использования только тогда, когда у рассматриваемой переменной есть только ограниченное количество опций.
В этом руководстве по VB Net вы узнаете:
- Что такое Select Case?
- Синтаксис Select Case
- Примеры
- С учетом регистра: ToLower, ToUpper
Синтаксис Select Case
Оператор Select Case имеет следующий синтаксис:
Select [ Case ] your_expression[ Case expression_list[ statement(s) ] ][ Case Else[ else statement(s) ] ]End Select
Опишем параметры, использованные выше:
- your_expression: обозначает выражение, которое оценивает один из элементарных типов данных, поддерживаемых в Microsoft VB.NET.
- список_выражений: предложения выражения, которые обозначают значения соответствия для выражения. В случае нескольких предложений разделите их запятой (,).
- оператор (ы): операторы, которые следуют за Case и выполняются после того, как выражение выбора совпадет с любым предложением в expression_list.
- Операторы else: операторы, которые следуют за Case Else и выполняются, когда выражение select не соответствует ни одному из предложений в expression_list для любого оператора Case.
Примеры
Давайте использовать пример, чтобы продемонстрировать, как использовать это утверждение.
Шаг 1) Сначала создайте новое консольное приложение.
Шаг 2) Используйте следующий код:
Module Module1Sub Main()Dim name As Stringname = "Guru99"Select Case nameCase "John"Console.WriteLine("Hello John")Case "Guru99"Console.WriteLine("Hello Guru99")Case "Alice"Console.WriteLine("Hello Alice")Case "Joel"Console.WriteLine("Hello Joel")Case ElseConsole.WriteLine("unknown name")End SelectConsole.WriteLine("VB.NET is easy!")Console.ReadKey()End SubEnd Module
Шаг 3) Нажмите кнопку «Пуск» на верхней панели, чтобы запустить программу. Это даст вам следующий результат:
Вот скриншот кода, который мы использовали:
Пояснение к коду:
- Создание модуля с именем Module1.
- Начало основной подпроцедуры.
- Создание строковой переменной с именем name.
- Присвоение имени переменной значения Guru99.
- Значение имени переменной будет использоваться для выполнения сравнений с различными операторами Case, чтобы найти совпадение.
- Если значение имени переменной - Джон.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если значение имени переменной - Guru99.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если значение имени переменной - Алиса.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если значение переменной - Joel.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если ни одно из приведенных выше утверждений Case не соответствует действительности / совпадает.
- Текст для печати на консоли, если приведенный выше случай истинен, то есть не найдено ни одного оператора Case.
- Конец оператора Select.
- Этот оператор напечатает некоторый текст на экране независимо от того, совпал оператор Case или нет. Он всегда будет выполняться.
- Приостановите окно консоли на некоторое время, ожидая, пока пользователь закроет его.
- Конец основной подпроцедуры.
- Конец модуля.
Вы также можете разрешить пользователю вводить имя, на основании которого вы принимаете решение. Например:
Шаг 1) Создайте новое консольное приложение.
Шаг 2) Используйте следующий код:
Module Module1Sub Main()Console.Write("Enter your name: ")Dim name As String = Console.ReadLine()Select Case nameCase "John"Console.WriteLine("Hello John")Case "Guru99"Console.WriteLine("Hello Guru99")Case "Alice"Console.WriteLine("Hello Alice")Case "Joel"Console.WriteLine("Hello Joel")Case ElseConsole.WriteLine("unknown name")End SelectConsole.WriteLine("VB.NET is easy!")Console.ReadKey()End SubEnd Module
Шаг 3) Нажмите кнопку «Пуск» на верхней панели, чтобы выполнить его. Он должен вернуть следующее:
Шаг 4) Введите имя Guru99 и нажмите клавишу ввода. У вас должно получиться следующее:
Вот скриншот кода:
Пояснение к коду:
- Создание модуля с именем Module1.
- Начало основной подпроцедуры.
- Печать текста на консоли, инструктирующего пользователя ввести свое имя.
- Создание строковой переменной с именем name и предложение пользователю ввести значение для этой переменной на консоли.
- Значение имени переменной будет использоваться для выполнения сравнений с различными операторами Case, чтобы найти совпадение.
- Если значение имени переменной - Джон.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если значение имени переменной - Guru99.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если значение имени переменной - Алиса.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если значение имени переменной - Joel.
- Текст для печати на консоли, если вышеуказанный случай верен / соответствует.
- Если ни одно из приведенных выше утверждений Case не соответствует действительности / совпадает.
- Текст для печати на консоли, если приведенный выше случай истинен, то есть не найдено ни одного оператора Case.
- Конец оператора Select.
- Этот оператор напечатает некоторый текст на экране независимо от того, совпал оператор Case или нет. Он всегда будет выполняться.
- Приостановите окно консоли на некоторое время, ожидая, пока пользователь закроет его.
- Конец основной подпроцедуры.
- Конец модуля.
С учетом регистра: ToLower, ToUpper
Оператор Select Case чувствителен к регистру. Это означает, что он будет рассматривать guru99 как отличный от Guru99. Тем не менее, мы можем использовать функции ToLower () и ToUpper () для решения проблемы дела с помощью этого оператора.
Например:
Шаг 1) Создайте новое консольное приложение.
Шаг 2) Используйте следующий код:
Module Module1Sub Main()Console.Write("Enter your name: ")Dim name As String = Console.ReadLine()Select Case name.ToLower()Case "john."Console.WriteLine("Hello John")Case "guru99."Console.WriteLine("Hello Guru99")Case "alice."Console.WriteLine("Hello Alice")Case "joel."Console.WriteLine("Hello Joel")Case ElseConsole.WriteLine("unknown name")End SelectConsole.WriteLine("VB.NET is easy!")Console.ReadKey()End SubEnd Module
Шаг 3) Нажмите кнопку «Пуск» на верхней панели, чтобы запустить код. Вы должны получить следующий результат:
Шаг 4) Введите имя Guru99 (G в верхнем регистре) и нажмите клавишу ввода на клавиатуре. У вас должно получиться следующее:
Вот скриншот кода:
Пояснение к коду:
Строка кода 5: значение имени переменной будет использоваться для выполнения сравнений с различными операторами Case для поиска совпадения. Функция ToLower () гарантирует, что любое имя, вводимое пользователем, сначала будет преобразовано в нижний регистр перед вычислением операторов Case. Это означает, что если пользователь вводит Guru99, он будет немедленно преобразован в guru99, после чего выполняется оценка операторов Case. Если пользователь вводит John, он будет немедленно преобразован в john до того, как будет выполнена оценка операторов Case.
Остальная часть кода такая же, как и выше.
Резюме
- Оператор Select Case, предоставляемый VB.NET, помогает оценить значение по набору значений путем сопоставления.
- Это подходит только в том случае, если известно, что возможные значения рассматриваемой переменной ограничены.
- Оператор Select Case чувствителен к регистру.
- Вы можете использовать функции ToLower () и ToUpper () для преобразования строк в нижний и верхний регистры соответственно.