Поделиться через


Практическое руководство. Повторное выполнение нескольких инструкций

Обновлен: Ноябрь 2007

Можно использовать циклические структуры для выполнения блока операторов несколько раз. Цикл можно запустить на неопределенное число проходов, в зависимости от значения Boolean условия, или на конкретное число, управляемое специальной переменной.

Цикл с неопределенным количеством проходов

Выполнение группы инструкций, пока значение условия равно True

  • Используйте Оператор While... End While (Visual Basic), чтобы указать условие, которое управляет повторением цикла. В следующем примере блок операторов повторяется, пока number больше 6.

    Sub checkWhile()
        Dim counter As Integer = 0
        Dim number As Integer = 10
        While number > 6
            number -= 1
            counter += 1
        End While
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    

    Оператор While всегда проверяет условие до выполнения цикла. Если бы number было не 10, а 6, операторы внутри цикла не были бы выполнены ни разу.

Чтобы выполнять группу операторов, пока условие остается True

  • Используйте Оператор Do...Loop (Visual Basic) и определите проверочное условие в начале или в конце цикла. Расположение ключевого слова While (Visual Basic) определяет место, где проверяется условие. Это показано в приведенном ниже примере.

    Sub checkWhileFirst()
        Dim counter As Integer = 0
        Dim number As Integer = 10
        Do While number > 6
            number -= 1
            counter += 1
        Loop
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    Sub checkWhileLast()
        Dim counter As Integer = 0
        Dim number As Integer = 5
        Do
            number -= 1
            counter += 1
        Loop While number > 6
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    

    В предыдущем примере первый цикл Do выполняется четыре раза, а второй Do — один раз.

Чтобы выполнять группу инструкций до тех пор, пока условие не станет True

  • Используйте конструкцию Do...Loop с ключевым словом Until вместо While. Как и с While, расположение ключевого слова определяет место, где проверяется условие. Это показано в приведенном ниже примере.

    Sub checkUntilFirst()
        Dim counter As Integer = 0
        Dim number As Integer = 20
        Do Until number = 15
            number -= 1
            counter += 1
        Loop
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    Sub checkUntilLast()
        Dim counter As Integer = 0
        Dim number As Integer = 20
        Do
            number -= 1
            counter += 1
        Loop Until number = 15
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    

    В предыдущем примере каждый цикл Do выполняется пять раз.

Цикл с заданным количеством проходов

Циклы While и Do удобны, когда неизвестно необходимое число повторов выполнения операторов. Однако, если предполагается повторить цикл определенное число раз, то лучше использовать цикл Инструкция For... Next (Visual Basic)/ В отличие от циклов While или Do, цикл For... Next использует переменную управления (переменную цикла), которая увеличивается или уменьшается при каждом проходе цикла.

Выполнение группы операторов заданное количество раз.

  1. Определите начальное и конечное значения переменной цикла и используйте инструкцию For для установки этих значений.

    For i As Integer = 1 To 10
    

    Если переменная цикла не объявлена вне цикла, можно объявить ее с помощью предложения As как часть оператора For.

  2. Используйте ключевое слово Шаг, чтобы указать число, на которое переменную цикла надо увеличивать на каждой итерации. Если не задано иное, она увеличивается на 1. Используйте отрицательное значение, чтобы уменьшать ее значение.

    For i As Integer = 10 To 1 Step -1
    
  3. Конструкция завершается For... Next оператором Next, который выполняется после выхода из цикла. Можно указать переменную цикла в операторе Next.

    Function addBackward(ByVal highest As Integer) As Integer
        Dim total As Integer = 0
        For i As Integer = highest To 1 Step -1
            total += i
        Next i
        Return total
    End Function
    

    В предыдущем примере возвращается сумма всех целых чисел от 1 до значения, переданного в параметре highest.

См. также

Задачи

Практическое руководство. Передача управления за пределы структуры управления

Практическое руководство. Запуск нескольких операторов для каждого элемента в коллекции или массиве

Практическое руководство. Улучшение быстродействия цикла

Практическое руководство. Переход к следующей итерации цикла

Основные понятия

Структуры решений

Циклические структуры

Другие структуры управления

Вложенные структуры управления

Ссылки

Инструкция For Each... Next (Visual Basic)

Другие ресурсы

Управление ходом выполнения в Visual Basic