Разное

Vb net case select: Оператор Select…Case — Visual Basic

8) VB.Net Select … Дело

Что такое отборный случай?

Select Case – это условный оператор, который помогает вам проверить переменную на равенство с набором значений. Каждое значение называется регистром, и включаемая переменная должна проверяться для всех выбранных вариантов.

Оператор Select Case предоставляет вам простой способ проверки содержимого переменной. Тем не менее, он подходит только для случаев, когда рассматриваемая переменная имеет только ограниченное количество параметров.

Из этого урока VB Net вы узнаете:

  • Что такое отборный случай?
  • Синтаксис 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.
  • expression_list: выражения выражения, которые обозначают значения соответствия для выражения. В случае нескольких предложений разделите их запятыми (,).
  • оператор (ы): операторы, которые следуют за регистром и выполняются после того, как выражение выбора соответствует любому предложению в expression_list.
  • операторы else: операторы, которые следуют за Case Else и выполняются, когда выражение select не соответствует ни одному из предложений в expression_list для любого оператора Case.

Примеры

Давайте использовать пример, чтобы продемонстрировать, как использовать это утверждение.

Шаг 1) Сначала создайте новое консольное приложение.

Шаг 2) Используйте следующий код:

Module Module1
    Sub Main()
        Dim name As String
        name = "Guru99"
        Select Case name
            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 Else Console.WriteLine("unknown name") End Select Console.WriteLine("VB.NET is easy!") Console.ReadKey() End Sub End Module

Шаг 3) Нажмите кнопку Пуск на верхней панели, чтобы запустить программу. Это даст вам следующий результат:

Вот скриншот кода, который мы использовали:

Объяснение кода:

  1. Создание модуля с именем Module1.
  2. Начало основной подпроцедуры.
  3. Создание строковой переменной с именем name.
  4. Присвоение значения Guru99 имени переменной.
  5. Значение имени переменной будет использоваться для сравнения с различными инструкциями Case, чтобы найти совпадение.
  6. Если значение имени переменной – Джон.
  7. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  8. Если значение имени переменной – Guru99.
  9. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  10. Если значение имени переменной – Алиса.
  11. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  12. Если значение имени переменной – Джоэл.
  13. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  14. Если ни одно из приведенных выше утверждений Case не соответствует действительности / не найдено.
  15. Текст для печати на консоли, если приведенный выше регистр истинен, то есть оператор Case не соответствует.
  16. Конец оператора Select.
  17. Этот оператор будет печатать некоторый текст на экране независимо от того, был ли выбран оператор Case или нет. Это всегда будет выполняться.
  18. Задержите окно консоли на некоторое время, пока пользователь не предпримет действия, чтобы закрыть его.
  19. Конец основной подпроцедуры.
  20. Конец модуля.

Вы также можете разрешить пользователю вводить имя, на основании которого вы принимаете решение. Например:

Шаг 1) Создайте новое консольное приложение.

Шаг 2) Используйте следующий код:

Module Module1
    Sub Main()
        Console.Write("Enter your name: ")
        Dim name As String = Console.ReadLine()
        Select Case name
            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 Else
                Console.WriteLine("unknown name")
        End Select
        Console.WriteLine("VB.NET is easy!")
        Console.ReadKey()
    End Sub
End Module

Шаг 3) Нажмите кнопку «Пуск» на верхней панели, чтобы выполнить ее. Он должен вернуть следующее:

Шаг 4) Введите имя Guru99 и нажмите клавишу ввода. Вы должны получить следующее:

Вот скриншот кода:

Объяснение кода:

  1. Создание модуля с именем Module1.
  2. Начало основной подпроцедуры.
  3. Распечатка текста на консоли с указанием имени пользователя.
  4. Создайте строковую переменную с именем name и предложите пользователю ввести значение для этой переменной в консоли.
  5. Значение имени переменной будет использоваться для выполнения сравнения с различными инструкциями Case, чтобы найти совпадение.
  6. Если значение имени переменной – Джон.
  7. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  8. Если значение имени переменной – Guru99.
  9. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  10. Если значение имени переменной – Алиса.
  11. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  12. Если значение имени переменной – Джоэл.
  13. Текст для печати на консоли, если приведенный выше регистр имеет значение true / соответствует.
  14. Если ни одно из приведенных выше утверждений Case не соответствует действительности / не найдено.
  15. Текст для печати на консоли, если приведенный выше регистр истинен, то есть оператор Case не соответствует.
  16. Конец оператора Select.
  17. Этот оператор будет печатать некоторый текст на экране независимо от того, был ли выбран оператор Case или нет. Это всегда будет выполняться.
  18. Задержите окно консоли на некоторое время, пока пользователь не предпримет действия, чтобы закрыть его.
  19. Конец основной подпроцедуры.
  20. Конец модуля.

С учетом регистра: ToLower, ToUpper

Оператор Select Case чувствителен к регистру. Это означает, что он будет относиться к гуру99 как к гуру99. Тем не менее, мы можем использовать функции ToLower () и ToUpper () для решения проблемы с помощью этого оператора.

Например:

Шаг 1) Создайте новое консольное приложение.

Шаг 2) Используйте следующий код:

Module Module1
    Sub 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 Else
                Console.WriteLine("unknown name")
        End Select
        Console.WriteLine("VB.NET is easy!")
        Console.ReadKey()
    End Sub
End Module

Шаг 3) Нажмите кнопку «Пуск» на верхней панели, чтобы запустить код. Вы должны получить следующий вывод:

Шаг 4) Введите имя Guru99 (G в верхнем регистре) и нажмите клавишу ввода на клавиатуре.

Вы должны получить следующее:

Вот скриншот кода:

Объяснение кода:

Строка кода 5: значение имени переменной будет использоваться для сравнения с различными инструкциями Case, чтобы найти совпадение. Функция ToLower () гарантирует, что любое имя, которое вводит пользователь, сначала будет преобразовано в строчные буквы перед оценкой операторов Case. Это означает, что если пользователь вводит Guru99, он будет немедленно преобразован в guru99, тогда оценка операторов Case завершена. Если пользователь вводит John, он будет немедленно преобразован в john, прежде чем будет выполнена оценка операторов Case.

Остальной код такой же, как и выше.

Резюме

  • Оператор Select Case, предоставляемый VB.NET, помогает вам сравнивать значение с набором значений.
  • Это подходит только в том случае, если известно, что возможные значения рассматриваемой переменной ограничены.
  • Оператор Select Case чувствителен к регистру.
  • Вы можете использовать функции ToLower () и ToUpper () для преобразования строк в нижний и верхний регистр соответственно.

 

Условные конструкции в Visual Basic.NET

Последнее обновление: 30.10.2015

В VB.NET имеются следующие условные структуры:

  • If … Then

  • Select Case

Конструкция If…Then

Конструкция If … Then проверяет истинность некоторого условия и зависимости от результатов проверки выполняет определенный код:


Dim num1 As Integer = 10
Dim num2 As Integer = 9
If (num1 > num2) Then
    Console.WriteLine("Число {0} больше числа {1}", num1, num2)
End If

Здесь проверяем, больше ли число num1 числа num2, и если num1 больше чем num2. то выводим сообщение. Но, допустим, мы захотим, чтобы в случае невыполнения этого условия тоже совершалось какое-нибудь действие. Тогда мы добавляем выражение Else и после него определяем те действия, которые будут совершаться, если программа не удовлетворяет условию в выражении If.

Например, мы будем выводить сообщение, что первое число меньше второго:


Dim num1 As Integer = 10
Dim num2 As Integer = 9
If (num1 > num2) Then
    Console.WriteLine("Число {0} больше числа {1}", num1, num2)
Else
	Console.WriteLine("Число {0} меньше числа {1}", num1, num2)
End If

Но как вы уже заметили, мы сделали немного неправильно. Так как первое число может быть не только больше или меньше второго: оба числа могут быть равны друг другу. В этом случае мы можем определить альтернативные условия с помощью ключевого слова ElseIf:


Dim num1 As Integer = 10
Dim num2 As Integer = 9
If (num1 > num2) Then
    Console.WriteLine("Число num1 больше числа num2")
ElseIf num1 < num2 Then
    Console.WriteLine("Число num1 меньше числа num2")
Else
    Console.WriteLine("Число num1 равно числу num2")
End If

или так:


Dim R As New Random()
Dim num1 As Integer = R. Next(100)
If num1 = 1 Then
    Console.WriteLine("Число num1 равно 1")
ElseIf num1 = 2 Then
    Console.WriteLine("Число num1 равно 2")
ElseIf num1 = 3 Then
    Console.WriteLine("Число num1 равно 3")
Else
    Console.WriteLine("Число num1 больше 3")
End If

В данном примере мы использовали генератор случайных чисел, который представлен классом Random. Строка Dim R As New Random() выполняет инициализацию генератора случайных чисел. А в следующей строке Dim num1 As Integer = R.Next(100) мы присваиваем числу num1 случайное значение, которое выдаст нам генератор, причем в качестве максимально возможного значения выбрано число 100.

Конструкция Select Case

Конструкция Select Case подобна в конструкции If…Then, так как позволяет обрабатывать сразу несколько условий. После слов Select Case указывается сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора Case. И в случае если значения совпали, то выполняется блок команд, помещенных после данного оператора Case. Конструкция завершается словами End Select. Если мы хотим определить действия, которые будут выполняться, если совпадений не выявлено, то мы можем использовать оператор Case Else, после которого помещаем блок действий по умолчанию. Блок Case Else необязателен и может не употребляться Так, мы можем переписать предыдущий пример с помощью Select Case:


Dim R As New Random()
Dim num1 As Integer = R.Next(100)
Select Case num1
	Case 1
		Console.WriteLine("Число num1 равно 1")
    Case 2
        Console.WriteLine("Число num1 равно 2")
    Case 3 To 25
        Console.WriteLine("Число num1 находится на отрезке от 3 до 25")
    Case Else
        Console.WriteLine("Число num1 больше 25")
End Select

Здесь мы также генерируем случайное число и последовательно сравниваем его значения. Обратите внимание на строку Case 3 To 25 — здесь мы задаем целый диапазон значений от 3 до 25. Также обратите внимание, что если будет найдено совпадение с одним из выражений Case, то остальные выражения Case рассматриваться не будут. То есть следующий код отработает только для выражения Case 1, после чего программа осуществит выход из Select Case, несмотря на то, что новое значение числа совпадает с значением в следующем выражении Case:


Dim num2 As Integer = 1
Select Case num2
	Case 1
		Console.WriteLine("Число num2 равно 1")
		num2 += 1
    Case 2
        Console.WriteLine("Число num2 равно 2")
		num2 += 1
    Case 3 To 25
        Console.WriteLine("Число num2 равно 3")
End Select
Конструкция GoTo

Ну и в конце говоря об условных конструкций нельзя не упомянуть и оператор GoTo. Этот оператор требует после себя указание метки, на которую осуществляется переход. Например:


		Dim time As String = "day"
		If time = "day" Then
			GoTo M1
		Else
			GoTo M2
        End If
M1:     Console.WriteLine("Hello World")
M2:     Console.WriteLine("Good Bye World")

Как показывает практика, начинающие часто злоупотребляют использованием этого оператора, что приводит к написанию некрасивого и непонятного кода. Поэтому рекомендуется использовать данный оператор как можно реже и по возможности обходиться без него.

НазадСодержаниеВперед

Visual Basic Оператор Select Case

В Visual Basic оператор Select…Case полезен для выполнения одного оператора case из группы нескольких операторов case на основе значения определенного выражения.

 

Используя оператор Select…Case в Visual Basic, мы можем заменить функциональные возможности оператора if…else if, чтобы обеспечить лучшую читаемость кода.

Visual Basic Синтаксис оператора Select Case

Как правило, в Visual Basic оператор Select. ..Case представляет собой набор нескольких операторов case, и он будет выполнять только один оператор case на основе совпадающего значения определенного выражения.

 

Ниже приведен синтаксис определения оператора Select…Case в языке программирования Visual Basic.

 

Выбор переменной/выражения Case
Case value1
// Операторы для выполнения
Case value2
// Операторы для выполнения
….
….
Case Else
// Операторы для выполнения, если нет совпадений
End Select

Если вы соблюдаете приведенный выше синтаксис, мы определили оператор Select…Case с несколькими дело заявления. Оператор Select будет оценивать значение выражения / переменной путем сопоставления со значениями оператора Case (значение1, значение2 и т. д.). Если значение переменной /выражения соответствует любому из операторов case , будут выполнены операторы внутри этого конкретного case .

 

Если ни один из операторов case не соответствует определенному выражению / значение переменной , тогда будут выполнены операторы внутри блока Else , и это больше похоже на блок Else в операторе if…else.

Блок-схема оператора Select Case в Visual Basic

Ниже приведено графическое представление потока процесса оператора Select…Case на языке программирования Visual Basic.

 

 

Если вы соблюдаете приведенную выше блок-схему оператора Select…Case, поток процесса оператора Select..Case начнется с  Верх на Низ, и в первом случае проверит совпадение значения выражения или нет.

 

В случае, если значение выражения совпадает, он выполнит конкретный блок операторов Case и выполнит оператор Select ; в противном случае он перейдет ко второму оператору Case и проверит, совпадает ли значение выражения или нет, таким же образом поиск будет продолжаться, пока не будет найден правильный Case 9. Заявление 0004.

 

Если все операторы case не соответствуют определенному значению выражения, то будут выполнены операторы блока Else  , и оператор Select завершится.

Пример оператора Select Case в Visual Basic

Ниже приведен пример использования оператора select…case в языке программирования Visual Basic.

 

Модуль Module1
  Sub Main()
    Dim x As Integer = 20
    Select Case x
Случай 10
Console.WriteLine («x значение составляет 10»)
Случай 15
Консоль. .WriteLine(«Неизвестно»)
    End Select
    Console.WriteLine(«Нажмите клавишу Enter для выхода..»)
    Console.ReadLine()
  End Sub
End Module

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

 

Когда мы выполним приведенную выше программу Visual Basic, мы получим результат, как показано ниже.

 

 

Если вы наблюдаете приведенный выше результат, оператор Case ( 20 ) соответствует определенному значению выражения ( 20 ) и выполняет операторы в соответствующем операторе 3 Case 9000 .

Visual Basic Вложенные операторы Select Case

В Visual Basic использование одного оператора Select…Case в другом операторе Select…Case называется вложенным оператором Select…Case .

 

Ниже приведен пример использования вложенных операторов Select…Case в языке программирования Visual Basic.

 

Модуль Module1
  Sub Main()
   Dim x As Integer = 10, y As Integer = 5
   Select Case x
Случай 10
Console.WriteLine («x Значение: 10»)
Выберите Case Y
Case 5
Console.WriteLine («Вложенное значение переключения: 5»)
Выберите случай Y — 2
Case 3
Console. WriteLine (» Другое вложенное значение переключения: 3 «)
END SELECT
END SELECT
CASE 15
Console.WriteLine (» x Значение: 15 «)
Случай 20
Консоль.writeLine (» x Значение: 20 «)
Случай else
        Console.WriteLine(«Неизвестно»)
   End Select
   Console.WriteLine(«Нажмите клавишу Enter для выхода..»)
   Console.ReadLine()
  End Sub
End Module

Если вы наблюдаете приведенный выше пример, мы используются операторы Select…Case внутри других операторов Select…Case для реализации вложенных операторов Select…Case на основе наших требований.

 

Когда мы выполним приведенную выше программу Visual Basic, мы получим результат, как показано ниже.

 

 

Если вы наблюдаете приведенный выше результат, вложенные операторы Select…Case были выполнены на основе наших требований.

Visual Basic Оператор Select Case с Enum

В Visual Basic мы можем использовать значения enum с операторами Select. ..Case для выполнения требуемых операций.

 

Ниже приведен пример использования значений перечисления в операторе c# switch case .

Module Module1
Sub Main ()
DIM LOC AS AS LOCATE = местоположение. HYDERABAD
SELECT CASE LOC
Расположение корпуса. CHENNAI
Консоль. Location: Guntur»)
     Case location.hyderabad
        Console.WriteLine(«Местоположение: Хайдарабад»)
     Case Else
        Console.WriteLine(«Неизвестно»)
   End Select
    Console.Write Key(«Enter Key to ExitPole.Console.Console.WriteLine. «)
   Console.ReadLine()
 End Sub
 Public Enum location
                         
                                                                         необходимые операции, основанные на наших требованиях.

 

Когда мы выполним приведенную выше программу Visual Basic, мы получим результат, как показано ниже.

 

 

Если вы наблюдаете приведенный выше результат, значит, в окне консоли был напечатан оператор Select Case, соответствующий значению перечисления.

 

Вот как мы можем использовать перечисления с операторами Select case в Visual Basic для выполнения операций в соответствии с нашими требованиями.

Оператор Select Case в Visual Basic

Если вы ранее программировали на C# или PHP, возможно, вы знакомы с оператором Switch, который в VB называется оператором Select Case. Операторы Select Case похожи на операторы If Else, но имеют некоторые отличия: они оценивают только одну вещь и более удобочитаемы.

Синтаксис

 Выбор регистра VariableName
            Дело 1


            Случай 2

            Дело еще


        End Select 

Например, сначала создайте консольное приложение VB и назовите его Выберите Case , затем скопируйте следующее:

 Dim game As String


        Console. WriteLine("Ваша любимая игра?")
        игра = Console.ReadLine()


        Затемнить сообщение как строку
        message = game & "ваша любимая игра!"

        Выберите кейс
            Кейс "ГТА 4"
                Console.WriteLine(сообщение)
            Кейс "Battlefield 3"
                Console.WriteLine(сообщение)
            Кейс "СЕТКА"
                Console.WriteLine(сообщение)
            Дело «Позорный»
                Console.WriteLine(сообщение)
            Дело еще
                Console.WriteLine("Похоже, вашей игры нет в моем списке")
        Конец выбора
        Консоль.ReadLine() 

В приведенном выше примере мы собираем ввод пользователя и просто сравниваем его по меткам кейса. Если информация соответствует каким-либо ярлыкам, будет выполнен код для этого ярлыка; в противном случае будет выполнен Case Else.

С учетом регистра

Проблема с приведенным выше примером заключается в том, что метки регистра чувствительны к регистру, поэтому, если пользователь ввел «gta 4» в качестве своей любимой игры, Case Else будет выполняться как «gta 4». Этого нет в нашей метке case, так как на самом деле она отображается в верхнем регистре, поэтому мы можем решить эту проблему с помощью метода ToLower().

 Игра Dim As String

        Console.WriteLine("Ваша любимая игра?")
        игра = Console.ReadLine()

        Затемнить сообщение как строку
        message = game & "ваша любимая игра!"

        Выберите Case game.ToLower()
            Кейс "гта 4"
                Console.WriteLine(сообщение)
            Кейс "поле битвы 3"
                Console.WriteLine(сообщение)
            Корпус "сетка"
                Console.WriteLine(сообщение)
            Дело «позорное»
                Console.WriteLine(сообщение)
            Дело еще
                Console.WriteLine("Похоже, вашей игры нет в моем списке")
        Конец выбора
        Консоль.ReadLine() 

Здесь мы добавили метод ToLower() к имени нашей переменной и изменили все метки регистра на строчные. Это связано с тем, что когда метка регистра сравнивает его, он, по сути, сравнивает «gta 4» с «gta 4», пользовательский ввод будет строчным, поэтому, даже если пользователь введет «gTa 4», он будет преобразован в нижний регистр. . Поэтому метки регистра должны быть строчными, чтобы их можно было сравнивать.

Случай Else существует, потому что, если другие случаи не совпадают, появляется это сообщение.

Выберите дело — с помощью операторов

Мы можем использовать следующие операторы в ярлыках вашего дела:

Оператор Описание
< Менее
> Больше
<= Меньше или равно
>= Больше или равно
<> Не равно
= равно

При использовании операторов необходимо использовать ключевое слово Is или To, чтобы метка case выглядела так:

 Case Is > 10

Случай с 13 по 20 

Наклейка на корпусе означает «Больше 10?» а второй переводится как «От 13 до 20 лет». Мы можем использовать операторы отношения, только если мы вычисляем целое или двойное число.

Пример

 Размер как целое число

Console.Write("Введите свой возраст")
возраст = Console.ReadLine()

 Выберите возраст дела
       Случай < 17
            Console.WriteLine("Вы не в том возрасте, чтобы пить алкоголь")
       Дело >= 18
            Console.WriteLine("Вы уже достаточно взрослые, чтобы пить алкоголь, но пейте осторожно!")
       Дело еще
           Console.WriteLine("Не понял")
      Конец выбора

 Консоль.ReadLine() 

В этом примере вы можете увидеть использование операторов «больше» и «больше чем» или «равно» для соответствия вводу пользователя. Базовый пример берет ввод от пользователя, а затем сравнивает его с метками case.

Пример – использование ключевого слова To

 Уменьшение размера как целого числа  Console.Write("Введите свой возраст")
возраст = Console.ReadLine()  Выберите возраст дела
 Случай 10–17
 Console.WriteLine("Вы не в том возрасте, чтобы пить алкоголь")
 Случай 18–50
 Console.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *