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

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

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

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

Разместил(а) dimOk, 12 окт 2016 | | |
  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(если условие не верно).