пятница, 20 августа 2010 г.

Условные операторы


Я уже довольно давно хочу приступить к программированию моего приложения на VB.NET, но надо освоить много подготовительного материала. Сегодня я продолжу свое обучение Visual Basic.NET, но – это еще не финал. В следующих статьях обязательно надо будет рассмотреть объектно-ориентированное программирование. Так что готовьтесь =)
А сегодня будет довольно легкое обучение – надо будет ознакомиться с основными конструкциями Visual Basic (а точнее – условные опретаоры). То есть – мы изучим все циклы, которые есть в этом языке, управление этими циклами, а также – ветвления. У меня уже была попытка осветить подобные конструкции (но для C#) мне она не понравилась. Надо будет лучше сделать.
Так, нам предстоит познакомиться с оператором условия IF, оператор выбора SELECTCASE. Затем – будут несколько различных циклов. И на последок – два оператора управления циклами (если они есть в языке Visual Basic). Предлагаю обучение Visual Basic начать с условных операторов: IF и SELECTCASE. Это будет в сегодняшней статье. А описание остальных конструкций – в следующих.
Итак – приступим к обучению. Начнем с самого простого (как мне кажется) – с оператора условия IF. Есть две версии этого условия – без использования ключевого слова ElseIf и с использованием этого слова.
Начнем с простого – без ElseIf. Оператор условия выбирает из двух вариантов – либо одно, либо другое. Так что, в простейшем виде – можно его обозначить так:
        If Условие Then
            Дейстие1
        Else
            Действие2
        End If

Условие должно иметь логический тип (или должно конвертироваться в него). Сначала проверяется это Условие затем (если оно верно, равно True) выполнится Действие1, а Действие2 никогда не выполнится. В любых других случаях (то есть – когда Условие принимает значение False) будет выполнено Действи2.
Надо сказать, что в языке Visual Basic все конструкции должно завершаться ключевым слово завершения. Так что совет – Visual Studio вам будет сама помогать: когда вы набрали первую строчку (If Условие Then) нажмите Enter – и VS сразу же допишет в следующей строчке закрывающее словосочетание End If. Также пользуйтесь всплывающими подсказками Студии.
Кстати, показывать результаты работы условия и циклов я буду с помощью визуального WinForms-приложения, не через командную строку. Почему-то очень популярно все демонстрировать через нее (во всех книгах по программированию). Но – мне больше нравятся окна, так что буду делать именно так. Поэтому – вам надо расположить на форме TextBox и Button. Имена оставьте по умолчанию.
Приведу небольшой пример для обучения:
        Dim number As Integer
 number = Convert.ToInt32(TextBox1.Text)

        If number >= 10 Then
            MsgBox("Число больше или равно десяти.")
        Else
            MsgBox("Число меньше десяти")
        End If

Результат это программы очевиден, так что приводить скрины не буду.
Теперь изучим более сложную форму этого условного оператора – с использованием ключевого слова ElseIf. Хотя я даже и не знаю, где ее можно использовать. Но познакомиться все-равно необходимо. Кратко можно описать так:
        If Условие1 Then
            Дейстие1
        ElseIf Условие2 Then
            Действие2
        Else
            Действие3
        End If

Опять же – в первую очередь проверяется Условие. Если оно True – то выполняется Действие1. Если Условие = False – то управление переходит к Условию 2. Если оно True – будет выполнено Действие2. И, если уж все Условия оказались неверны (все они False) – будет выполнено Действие3 – оно у нас объявлено завершающим, после слова Else.
И приведу пример этого условия:
        Dim number As Integer
        number = Convert.ToInt32(TextBox1.Text)
        If number < 10 Then
            MsgBox("Число меньше десяти")
        ElseIf number = 10 Then
            MsgBox("Число равно десяти")
        Else
            MsgBox("Число больше десяти")
        End If

Смысл всей этой программы – проверяем введенное число: если оно меньше десяти – выводим об этом сообщение. Если оно равно десяти – также сигнализируем. И, если оно не меньше десяти и не равно 10 – то также пишем это. Вот и все.
А теперь перейдем к следующему условному оператору – оператору выбора SELECTCASE. Можно сказать – он объединяет в себе несколько операторов IF. То есть – он выбирает какое-то определенное действие из списка. Описать его можно так:
        Select Case ОбязательноеВыражение
            Case Условие1
                Действие1
            Case Условие2
                Действие2
            Case Условие3
                Действие3
            Case Else
                ДействиеПоУмолчанию
        End Select

Тут ОбязательноеВыражение должно быть простого типа (Boolean, Integer, String и тд). Затем идет список возможных значений (Условие1, Условие2 и тд). Если ОбязательноеВыражение удовлетворяет какому-нибудь условию – будет выполнено Действие, соответствующее этому условию. А если такого условия не нашлось – то выполнится ДействиеПоУмолчанию.
И приведу просто пример, демонстрирующий работу оператора выбора:
        Dim number As Integer
        number = Convert.ToInt32(TextBox1.Text)

        Select Case number
            Case 1 To 5
                MsgBox("От одного до пяти")
            Case 6, 7, 8
                MsgBox("Либо шесть, либо семь, либо восемь")
            Case 9 To 10
                MsgBox("От девяти до десяти")
            Case Else
                MsgBox("Больше десяти")
        End Select

Как вы могли заметить – после слов Case (в Условиях) можно указывать числовые промежутки (1 To 5), либо перечислять числа напрямую – много возможностей есть. Кстати, на счет этого оператора. Аналог его в языке C# называется SWITCH. Я сначала долго пытался применить этот свитч в языке Visual Basic – но не смог. Зато потом порылся в msdn – и все нашел. Так что используйте этот источник полезной информации. И будьте внимательными.

2 коммент.:

  1. Здравствуйте, мне интересует методы работы условных операторов в VB. Если можете пришлите мне материал. За ранее спасибо!

    ОтветитьУдалить
  2. Здравствуйте, Аноним. Я могу ответить на Ваш вопрос, но - данных контактных то вы не оставили, как я вам пришлю материал?

    ОтветитьУдалить