1. Хочешь автоматизировать свой браузер?
    Заходи в раздел iMacros!

    Что в разделе?
    Скрыть объявление
  2. Хочешь научиться программировать?
    Идет набор индивидуальной группы обучения!

    • Уроки на понятном для обычных людей языке
    • Видеоуроки + поддержка в закрытой группе
    • Никакой воды и пустой информации
    • Аналогов в интернете нет
    • Мы уже начали, поторопись!
    • Гость, присоединяйся к группе прямо сейчас!
    Скрыть объявление

Visual Basic Оператор If...Then...Else (Урок 8)

  1. Оператор If...Then...Else.

    Этот урок будет посвящен такой теме, как - операторы. В частности мы познакомимся с оператором If...Then...Else, а так же познакомимся с арифметическими операторами и операторами сравнения, без которых оператор If...Then...Else нам с вами не применить максимально.

    В Visual Basic есть довольно большое количество различных операторов, некоторые из них способны вскипятить мозг даже бывалому программисту. kuzya:)Чтобы "не закипеть", мы рассмотрим только самые основные операторы на которых работает 95% программ, остальные операторы мы изучим по мере необходимости, таким образом тебе не придется зазубривать целый учебник и можно будет сразу же перейти к практическим занятиям.

    Выкладывая данный урок, я подразумеваю, что у тебя есть познания в области математики начальных классов.
    Что за познания? Это те самые примеры, в которых мы вычитали, складывали, умножали,... Припоминаешь такое? Отлично! Значит есть ещё порох в пороховницах. :D\)

    Перед тем, как приступить к изучению оператора If...Then...Else необходимо познакомиться с арифметическими и логическими операторами, без которых оператор If...Then...Else нам никак не применить с точки зрения глубокой практики. Ладно, хватит скучных наставлений и отступлений, присаживайся поудобней, мы переходим к делу! :-/|\

    Арифметические операторы
    С помощью данных операторов можно; делить, умножать, складывать и т.д.
    Тут всё так же просто, как в школе в начальных классах.

    + (сложение)
    - (вычитание)
    * (умножение)
    / (деление с остатком) в школе знаком деления был вот это знак : запомни эти отличия и не путай
    \ (целочисленное деление, без остатка)

    Операторы сравнения
    Это довольно важные операторы. С помощью данных операторов можно сравнивать числа, строки и другие данные. Без операторов сравнения невозможно построить логику или ветвление в программе.
    Важно запомнить, что операторы сравнения сравнивают два выражения и возвращают логическое значение Boolean в виде True(если условие верно) и False(если условие не верно).
    True в переводе с английского означает - Правда
    False в переводе с английского означает - Ложь
    С ходу возможно это покажется непонятным, но не переживай, чуть ниже ты поймешь что вся эта чертовщина значит. :D\)

    = (равно)
    Значение первого выражения равно значению второго выражения, либо это может быть результат сложения/вычитания/... двух вычислений.

    <> (неравенство)
    Значение первого выражения не равно значению второго выражения

    < (меньше)
    Значение первого выражения меньше значения второго выражения

    > (больше)
    Значение первого выражения больше значения второго

    <= (меньше или равно)
    Значение первого выражения меньше или равно значению второго

    >=
    (больше или равно)
    Значение первого выражения больше или равно значению второго


    oldman1:) Вижу-вижу, что тебе уже стало страшновато, на самом деле ничего страшного нет!
    Читай дальше и ты убедишься, что всё довольно просто.
    Ниже мы хорошенько подкрепим всё на примерах и на практике.
    И так, арифметические и логические операторы мы рассмотрели, теперь можно перейти непосредственно к самому оператору If...Then...Else


    Оператор If...Then...Else
    Сначала давай посмотрим, что означают слова оператора, если их перевести с английского на русский язык.
    If переводится, как Если
    Then переводится, как То
    Else переводится, как Иначе

    Для чего используется оператор If...Then...Else?
    С помощью данного оператора можно делать ветвление программ, без этого оператора невозможно написать серьезную программу.
    Перейдем к типичным примерам.

    Как компьютер обрабатывает оператор If...?
    Допустим, что у нас есть две переменных:
    Код (vb.net):
    1. Dim var1 = 10
    2. Dim var2 = 5
    и допустим, что у нас есть условие:
    Код (vb.net):
    1. If var1 > var2 Then
    2. MsgBox("Да, переменная var1 больше переменной var2")
    3. End If
    Как условие показанное выше работает?
    Компьютер посмотрит на переменные var1 и var2, если var1 действительно больше var2, значит условие верно(True - Правда) и компьютер покажет MsgBox.
    Если условие будет не верно(False - Ложь), то компьютер не покажет MsgBox.
    Убедиться в этом можно поменяв значения переменных на другие числа, чтобы условие получилось не верно, тогда мы не увидим MsgBox.


    Внимание!


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

    Арифметические операторы
    + (сложение)
    - (вычитание)
    * (умножение)
    / (деление)
    + Сложение:
    Код (vb.net):
    1. 'Пример показывает как можно сложить два числа
    2.         Dim chislo1 As Integer = 5
    3.         Dim chislo2 As Integer = 5
    4.  
    5.         Dim resultat As Integer
    6.         resultat = chislo1 + chislo2
    7.  
    8.         MsgBox(resultat)
    - Вычитание:
    Код (vb.net):
    1. 'Пример показывает как можно получить разницу двух чисел(вычитание)
    2.         Dim chislo1 As Integer = 5
    3.         Dim chislo2 As Integer = 5
    4.  
    5.         Dim resultat As Integer
    6.         resultat = chislo1 - chislo2
    7.  
    8.         MsgBox(resultat)
    * Умножение:
    Код (vb.net):
    1. 'Пример показывает как можно умножить одно число на другое
    2.         Dim chislo1 As Integer = 5
    3.         Dim chislo2 As Integer = 5
    4.  
    5.         Dim resultat As Integer
    6.         resultat = chislo1 * chislo2
    7.  
    8.         MsgBox(resultat)
    / Деление:
    Код (vb.net):
    1. 'Пример показывает как можно разделить одно число на другое
    2.         Dim chislo1 As Integer = 5
    3.         Dim chislo2 As Integer = 5
    4.  
    5.         Dim resultat As Integer
    6.         resultat = chislo1 / chislo2
    7.  
    8.         MsgBox(resultat)


    Операторы сравнения
    = (равно)
    <> (неравенство)
    < (меньше)
    > (больше)
    <= (меньше или равно)
    >= (больше или равно)
    = Равно:
    Код (vb.net):
    1. 'Пример показывает как можно узнать равен ли текст в переменной другому тексту который мы указали
    2.         Dim stroka As String = "Привет NubClub!"
    3.  
    4. 'Если stroka равна тексту в двойных кавычках значит покажи мне MsgBox
    5.         If stroka = "Привет NubClub!" Then
    6.             MsgBox("Переменная равна тексту, который мы ищем!")
    7.         End If
    <> Неравенство:
    Код (vb.net):
    1. 'Пример показывает как можно узнать равен ли текст в переменной другому тексту который мы указали
    2.         Dim stroka As String = "Привет NubClub!"
    3.  
    4. 'Если stroka не равна тексту в двойных кавычках значит покажи мне MsgBox
    5.         If stroka <> "Я начинающий программист" Then
    6.             MsgBox("Текст в переменной stroka не равен тексту в кавычках!")
    7.         End If
    < Меньше:
    Код (vb.net):
    1. 'Пример показывает как можно сравнить два числа
    2.         Dim chislo1 As Integer = 10
    3.         Dim chislo2 As Integer = 5
    4.  
    5. 'Если chislo2 меньше chislo1 значит покажи мне MsgBox
    6.         If chislo2 < chislo1 Then
    7.             MsgBox("Значение переменной chislo2 меньше значения переменной chislo1")
    8.         End If
    > Больше:
    Код (vb.net):
    1. 'Пример показывает как можно сравнить два числа
    2.         Dim chislo1 As Integer = 10
    3.         Dim chislo2 As Integer = 5
    4.  
    5. 'Если chislo1 больше chislo2 значит покажи мне MsgBox
    6.         If chislo1 > chislo2 Then
    7.             MsgBox("Значение переменной chislo1 больше значения переменной chislo2")
    8.         End If
    <= Меньше или равно:
    Код (vb.net):
    1. 'Пример показывает как можно сравнить два числа
    2.         Dim chislo1 As Integer = 10
    3.         Dim chislo2 As Integer = 5
    4.  
    5. 'Если chislo2 меньше или равно chislo1 значит покажи мне MsgBox
    6.         If chislo2 <= chislo1 Then
    7.             MsgBox("Значение переменной chislo2 меньше или равно значению переменной chislo1")
    8.         End If
    >= Больше или равно:
    Код (vb.net):
    1. 'Пример показывает как можно сравнить два числа
    2.         Dim chislo1 As Integer = 10
    3.         Dim chislo2 As Integer = 5
    4.  
    5. 'Если chislo1 больше или равно chislo2 значит покажи мне MsgBox
    6.         If chislo1 >= chislo2 Then
    7.             MsgBox("Значение переменной chislo1 больше или равно значению переменной chislo2")
    8.         End If


    Оператор If...Then...Else - Ветвление
    Выше были приведены довольно простые примеры использования условий If...Then, т.е. без ветвления и без применения Else.
    Теперь давай рассмотрим примерчики с ветвлением, они немного посложнее, но без них никуда.
    По своей сути с применением Else все примеры останутся такими же как и выше, добавится лишь небольшое ветвление программы.
    Что добавится?
    Если раньше у нас MsgBox появлялся только тогда, когда условие было верно, то с применение Else можно вызвать MsgBox даже тогда, когда условие не верно.

    И так, пример.
    Код (vb.net):
    1. 'Пример показывает как можно узнать равен ли текст в переменной другому тексту который мы указали
    2.         Dim stroka As String = "Привет NubClub!"
    3.  
    4. 'Если stroka равна тексту в двойных кавычках значит покажи мне MsgBox с текстом - Переменная равна тексту, который мы ищем!
    5. 'Если stroka НЕ РАВНА тексту в двойных кавычках значит покажи мне MsgBox с текстом - Переменная не равна тексту, который мы ищем!
    6.         If stroka = "Привет NubClub!" Then
    7.             MsgBox("Переменная равна тексту, который мы ищем!")
    8.         Else
    9.             MsgBox("Переменная не равна тексту, который мы ищем!")
    10.         End If
    Бывают случаи, что у нас одна переменная и несколько значений с текстом, которые нужно проверить. Что тогда делать? Снимать штаны и бегать?!
    Нет, это не наш метод :D\)
    Есть более элегантное решение. Можно усложнить наше условие с помощью ElseIf и таким образом проверить сколько угодно строк, в разумных пределах конечно. Если строк очень много, то тут уже придут на помощь циклы, с которыми мы поработаем на следующих уроках.

    Рассмотрим пример.
    Давай представим, что нам нужно создать логику для уличного светофора, чтобы он работал и показывал цвета.
    Как это сделать?
    На самом деле это не сложно, пример:
    Код (vb.net):
    1.  
    2.         'Сигналы светофора.
    3.         Dim red As String = "Красный"
    4.         Dim yellow As String = "Желтый"
    5.         Dim green As String = "Зеленый"
    6.  
    7.         'Текущий сигнал светофора yellow(желтый)
    8.         Dim signal As String = yellow
    9.  
    10.         If signal = red Then
    11.             MsgBox("Горит красный. Стоим!")
    12.         ElseIf signal = yellow Then
    13.             MsgBox("Горит желтый. Готовимся!")
    14.         ElseIf signal = green Then
    15.             MsgBox("Горит зеленый. Можно идти!")
    16.         Else
    17.             MsgBox("Светофор сломан, беда!")
    18.         End If
    19.  
    В примере выше программа будет всегда выдавать, что горит желтый.
    Разберись как включить другие цвета, например зеленый или красный.
    Попробуй создай какие-нибудь свои условия и поэкспериментируй с ними. Это необходимо, чтобы у тебя развивалась моторика и запоминались операторы.

    Дополнение
    Оператор if может быть однострочным, примеры:
    Код (vb.net):
    1.         If var1 = var2 Then var3 = var4
    Код (vb.net):
    1.         If TextBox1.Text = var2 Then var3 = var4
    Код (vb.net):
    1.         If var1 = var2 Then MsgBox("NubClub это круто!")
    На этом данный урок закончен и мы переходим к домашнему заданию в котором мы доведем светофор до ума и сделаем его динамическим, чтобы им можно было управлять через интерфейс.
    Будет увлекательно, присоединяйся! yes1:)



    За самое лучшее выполненное задание, победителю будет начислено 500 руб!
    Итоги будут подведены перед началом следующего урока.
    iLoveNubClub2:)

    Нравятся уроки?

    Поделись с друзьями и ставь лайк!

    Остались вопросы по уроку?
    Задавай их в комментариях!

    Поделиться

    Rukon, prankbox, Reiken и ещё 1-му нравится это.

Комментарии

Чтобы оставить комментарий просто зарегистрируйся или пройди авторизацию!
  1. Cherry Blazer
    Очень разжёвано, очень понятно, однако
    Да? :)
    Код (Text):
    1. If True Then
    2.     ...
    3. End If
    Имхо, как раз часть урока побольше надо было раскрыть на понимание вот этой фразы
    Например, что нам покажет MsgBox(5 > 4)? MsgBox(3 > 4)? А на основе исследования неравенств уже раскрыть механизм работы If Else, что на самом деле-то компилятор смотрит на выражение, делает из него True / False, и этим boolean наш оператор уже и ворочает. Понимание более глубокое :)
      dimOk нравится это.
    1. dimOk
      Всё верно, но я абстрагируюсь от подобного If True Then в пользу более практических примеров с применением переменных.
      У новичков зачастую проблема как раз с применением перемененных, они не понимают как их применять, поэтому я обошел это стороной.
      Если придет понимание как использовать переменные в условиях, то и понимание применения непосредственно булевых выражений тоже станет понятным.

      А подобное MsgBox(5 > 4) это вообще считается плохим тоном, или "говнокод", если по простому :)
      Хорошим тоном считается с помощью MsgBox лишь выводить результат, но не что-то там высчитывать.
      Cherry Blazer нравится это.
    2. Cherry Blazer
      А я не призываю пользоваться MsgBox(5 > 4) в реальных программах. Только что подумает новичок, если ему задать вопрос:
      Что выведет MsgBox(5 > 4)? У новичков будет тупняк) Эту тему я и предложил осветить - в целях понимания вышеприведённой твоей цитаты про true и false пример был бы как нельзя кстати. Я вот про что :)
    3. dimOk
      Ну вот комментарии прочитают и почерпнут дополнительно информацию.

      Кстати, у новичков тупняк возникает не только на таких вопросах :)
      "MsgBox(5 > 4)"

      Ответ на вопрос с MsgBox кроется тут...

      Операторы сравнения
      ....
      Важно запомнить, что операторы сравнения сравнивают два выражения и возвращают логическое значение Boolean в виде True(если условие верно) и False(если условие не верно).