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

Категории каталога

Форма входа

Приветствую Вас Гость!

Логин:
Пароль:

Поиск

Мини-чат

Наш опрос

Самое стоящее изобретение воплощённое человеком
Всего ответов: 24

Статистика


В сети всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Уроки » Visual Basic .NET

Урок 3. Условные операторы, метки и булева переменная
Начнём с теории. Если кто хочет, может пролистать её и переходить к практике сразу, возвращаясь к теории когда та будет требоваться.
Крайне часто в программах применяются условные операторы, для выбора одного из вариантов действий. Метки используются для перехода к ним в определённом случае.

Булевой переменной называется переменная типа Boolean. Такая переменная может принимать всего два возможных значения:
True - истина;
False - лож.
Описывается следующим образом:
Dim B As Boolean
Где B это имя переменной(само собой, имя можно задать любое из допустимых для переменных имён, тоесть буквенное, или буквенно-числовое, начинающееся с буквы).

Основные условия, это IF и CASE. Они имеют следующую структуру:
Сначала рассмотрим условия IF:
Однострочные условия:
If [Условие] Then [Действие]
Если [Условие] истинно, то выполняется одно [Действие].

Многострочные условия:
If [Условие] Then
[Действие]
...
End If

Если [Условие] истинно, то выполняется ряд [Действий].

Условия с двумя возможными вариантами:
If [Условие] Then
[Действие1]
Else
[Действие2]
End If

Если [Условие] истинно, то выполняется [Действие1](или ряд действий), иначе выполняется [Действие2](или ряд действий).

Условия с любым колличеством вариантов:
If [Условие1] Then
[Действие1]
ElseIf [Условие2] Then
[Действие2]
Else
[Действие3]
End If

Если [Условие1] истинно, то выполняется [Действие1](или ряд действий), иначе если [Условие2] истинно, то выполняется [Действие2](или ряд действий), в иначе выполняется [Действие2](или ряд действий).
При этом действие  Else не является обязательным.

Под истинностью условия понимается например равенство. Если у нас имеется следующее условие
If A=B Then
то оно считается истинным когда A=B, в иных ситуациях оно считается ложным.
Или вот другой пример:
If B Then
Если B булева это булева переменная, то условие будет считаться истинным когда переменная принимает значение True.

Теперь рассмотрим условия CASE, они бывают всего одного типа:
Select Case [Значение]
Case [Значение1]
[Действие1]
Case [Значение2]
[Действие2]
....
Case [ЗначениеN]
[ДействиеN]
Case Else
[ДействиеE]
End Select


Под значением понимается переменная либо константа любого из типов существующих в Visual Basic .NET 2005 либо созданных программистом.
Если к примеру совпадут [Значение] и [Значение2] то в таком случае будет выполнено [Действие2], затем программа перейдёт к строке End Select.
Такое условие, подобно последнему рассмотренному условию IF, может иметь практически бесконечное колличество вариантов, но при этом значительно короче в написании, хотя и менее универсально.
Использование  Case Else не является обязательным.

Рассмотрим работу с метками:
Метка описывается следующим образом:
M:
Где M это имя метки(меткам имена задаются по тому же принципу что и переменным).
Чтобы перейти к строке содержащей метку, следует использовать оператор GoTo, выглядит это следующим образом:
GoTo M

Например напишем программу, которая будет в одном случае выдавать нам время, в другом случае выключаться.

Итак, создаём проект Console Application, текст данной программы должен быть следующий:
Module Module1
    Sub Main()
        Console.WriteLine("Нажмите Enter чтобы узнать дату и время, или другую клавишу чтобы выйти")
G:
        If Console.ReadKey.Key = ConsoleKey.Enter Then
            Console.WriteLine(Now)
            GoTo G
        Else
            End
        End If
    End Sub
End Module


Запустим программу. После нажатия в программе клавиши Enter нам выдаются системные время и дата, если же нажать какую либо другую клавишу, программа закрывается.


Для примера теперь напишем программу с использованием оператора CASE, так же как и в прошлом примере, работа с клавишами, но только теперь сделаем выбор пошире. Например между тем, какую информацию нам показать.
В общем, следующий текст программы:

Module Module1
    Sub Main()
        Dim K As String
        Console.WriteLine("1. Вывести дату и время")
        Console.WriteLine("2. Вывести час")
        Console.WriteLine("3. Вывести минуту")
        Console.WriteLine("4. Вывести секунду")
        Console.WriteLine("5. Вывести милисекунду")
        Console.WriteLine("6. Выйти из программы")
H:      K = Console.ReadKey.KeyChar
        Console.CursorLeft = 0
        Select Case K
            Case "1"
                Console.WriteLine(Now)
            Case "2"
                Console.WriteLine(Now.Hour)
            Case "3"
                Console.WriteLine(Now.Minute)
            Case "4"
                Console.WriteLine(Now.Second)
            Case "5"
                Console.WriteLine(Now.Millisecond)
            Case "6"
                End
        End Select
        GoTo H
    End Sub
End Module

Запустите программу и проверьте, в зависимости от того какую цифру мы нажмём, мы получим соответствующее действие:


Такс, ну и в дополнение, я тут как видите использовал кое что, значение чего прежне не объяснял(ну, это информация не базовая, а частная, подобная будет встречаться и позже, но оглашаться особо не будет, тоесть подобные вещи если сейчас не понимаете, то вскоре должны бы начать понимать). А именно:
Console.CursorLeft = 0
Как уже можно понять из названия, это позиция курсора относительно левого края экрана, например если мы выдали строку, и нам надо её заменить. В данном случае мы переводим курсор в начало строки, чтобы стереть введённую нами цифру.
А так же вместо уже упомянутого выше Console.ReadKey.Key мы использовали другое значение, Console.ReadKey.KeyChar. Разница следующая: при считывании значения Key, мы считываем числовое значение, обозначающее код клавишы, а при считывании KeyChar мы считываем текстовое значение нажатой клавиши. В разных ситуациях разный код более удобен, в данной ситуации я решил использовать данный код, чтобы ввод можно было осуществлять как с нумпада, так и с основной клавиатуры, в то время как через Key мы смогли бы считать либо один из вариантов, либо объединив их оператором or, который будет рассмотрен позже. В любом случае, код бы получился более грамозкий и менее удобный.
Категория: Visual Basic .NET | Добавил: Electron (15.03.2009)
Просмотров: 1336 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]