Отправляет email-рассылки с помощью сервиса Sendsay

Visual Basic.NET. Уроки

  Все выпуски  

Visual Basic.NET. Уроки


Информационный Канал Subscribe.Ru

Основы VB.NET. Уроки с сайта http://progs.biz

Рассылка №21

Основы VB.NET. Урок 23. Операторы циклов While и Do...Loop.
Основы VB.NET. Урок 24. Функции и процедуры в VB.NET.

Полные версии уроков (с картинками) можно найти по адресам
Урок 23. Операторы циклов While и Do...Loop.
Урок 24. Функции и процедуры в VB.NET.

Основы VB.NET. Урок 23. Операторы циклов While и Do...Loop

Циклы которые мы рассмотрим на этом уроке, в отличие от циклов типа For...Next, выполняются заранее неизвестное число раз. Т. е. если в вашей программе вы точно не знаете, сколько раз должно выполниться то или иное действие, то размещайте его в цикле While или в цикле Do...Loop. Типичный пример - это запрос пароля у пользователя. Со скольки попыток полькозателю удасться набрать правильный пароль - никто не знает, так что в этом случае надо использовать циклами из этого урока.

У таких циклов есть две разновидности - Do...Loop и собственно While. До того, как переходить к конкретному синтаксису этих разновидностей, отметим, что Do...Loop точно один раз выполнится (а может и больше), а While может не выполнится ни одного раза.

Теперь конкретный синтаксис.

Пример использования цикла While:

        Dim password As String
        Console.WriteLine("Введите пароль")
        password = Console.ReadLine()
        While password <> "qwerty"
            Console.WriteLine("Неправильный пароль")
            Console.WriteLine("Введите пароль")
            password = Console.ReadLine()
        End While
        Console.WriteLine("Правильный пароль")

Условием продолжения цикла While является значение True после ключевого слова While. Т. е. в данном случае пока пользователь не введет qwerty в качестве пароля, цикл будет выполняться еще и еще.

Теперь поговорим о цикле Do...Loop. У него есть несколько разновидностей (4 штуки). Так, проверка того, продолжать ли цикл или нет, может находиться или в его начале, или в конце:

        Do
            'Некоторые операторы
        Loop While k>0

        Do While k>0
            'Некоторые операторы
        Loop

Кроме того, вместо слова While можно писать противоположное слово Until. В отличие от While, прикотором цикл будет продолжаться когда условие после While истинно, вариант с Until будет продолжаться, когда условие после Until - ложно. Until, как и While, может стоять как в начале, так и в конце цикла. Вот так, например, можно запрашивать пароль использую ключевое слово Until:

        Dim password As String
        Console.WriteLine("Введите пароль")
        password = Console.ReadLine()
        Do Until password = "qwerty"
            Console.WriteLine("Неправильный пароль")
            Console.WriteLine("Введите пароль")
            password = Console.ReadLine()
        Loop
        Console.WriteLine("Правильный пароль")

Вообще говоря цикл Do...Loop со своими разновидностями выглядит более логичным. Что же до цикла While...Do While, то он эквивалентен варианту

        Do While s>21 'Условие продолжения
            'Некоторые операторы
        Loop

цикла Do...Loop.

Наверх

Основы VB.NET. Урок 24. Функции и процедуры в VB.NET

Функции и процедуры в VB.NET (как, впрочем, и в предыдущих версиях VB) можно рассматривать как фрагменты кода с некоторым именем. По этому имени эти фрагменты кода можно вызывать сколько угодно раз. При этом вы получаете массу плюсов - от облегчения модернизации кода до увеличения его компактности и читаемости.

Разница между ними такая - функция возвращает некоторое значение, процедура же никакого значения после себя на оставляет. Все как во многих других языках.

Вот пример использования процедуры:

Module Test
    'Начало процедуры
    Sub Max(ByVal a As Integer, ByVal b As Integer)
        If a > b Then
            Console.WriteLine("a>b")
        Else
            Console.WriteLine("a<=b")
        End If
    End Sub
    'Конец процедуры
    Sub main()
        Dim w, r As Integer
        w = 23 : r = -211
        Max(w, r)
    End Sub
End Module

Тут мы объявили процедуру с именем Max. Она принимает два параметра и выводит на экран максимальный из них. В функции main мы вызываем процедуру Max по имени.

При объявлении процедуры мы используем ключевое слово Sub.

Теперь поговорим о функциях. Они, в отличие от процедур, возвращают некоторое значение. Вот пример:

    'Начало функции
    Function Max(ByVal a As Integer, ByVal b As Integer) As Integer
        Dim res As Integer
        If a > b Then
            res = a
        Else
            res = b
        End If
        Return res
    End Function
    'Конец функции
    Sub main()
        Dim w, r, q As Integer
        w = 23 : r = -211
        q = Max(w, r)
        Console.WriteLine(q)
    End Sub

Здесь мы объявляем функцию Max с помощью ключевого слова Function. Как вы видите, в конце объявления функции мы пишем тип возвращаемого значения (...As Integer):

Function Max(...) As Integer

В теле функции мы возвращаем ее значение посредством оператора return:

...
Return res
 ...

Операторов return в теле функции может быть несколько. При выполнении оператора return мы выходим их тела функции (и операторы, следующие за return, не выполняются).

Кроме способа вызова по имени, процедуры и функции можно вызывать с ключевым словом Call:

...
Call Max(w, r)
 ...

Передавать параметры в процедуры и функции можно двумя способами - через перечисление и через имя. Через перечисление - это все предыдущие примеры. В этом случае мы передаем параметры в таком же порядке, как они объявлены в функции (процедуре). При использовании второго способа мы параметры функции или метода можем передавать в любом порядке, но при этом мы должны указывать имя параметра:

...
Max(a:=r, b:=w)
 ...

С функциями и процедурами все.

Наверх

Рассылки сайта progs.biz:

Рассылки Subscribe.Ru
Обзор книг по программированию

Обзор новых книг по программированию. Включает книги как по традиционному программированию (Visual C++, Delphi, Visual Basic, C#, Java,...), так и по WEB-программированию (JavaScript, PHP, ASP, ASP.NET, Perl,...). Кроме того, предполагается обзор книг по компьютерным сетям, безопасности, сертификации и др.


Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное