Съдържание
Индекс 🔎︎

# Оператор For...Next

Повтаря операторите в блока For…Next зададен брой пъти.

## Синтаксис:

    For counter=start To end [Step step]
        операторен блок
        [Exit For]
        операторен блок
    Next [counter]

      For Each item In list
          операторен блок
      [Exit For]
          операторен блок
      Next [item]

## Променливи:

Брояч: брояч на цикъла, който в началото получава стойността вдясно от знака за равенство (начало). Допустими са само числови стойности. Броячът на цикъла се увеличава или намалява според стойността за стъпка, докато бъде премината стойността за край.

Начало: числова стойност, указваща началната стойност за цикъла.

Край: числова стойност, указваща крайната стойност за цикъла.

Стъпка: указва стойността, с която да нараства или намалява броячът на цикъла. Ако не е зададена стъпка, броячът нараства с 1. В този случай крайната стойност трябва да е по-голяма от началната. Ако искате да намалявате брояча, крайната стойност трябва да е по-малка от началната, а стъпката трябва да е отрицателна.

Цикълът For…Next повтаря всички оператори в тялото си толкова пъти, колкото е указано чрез параметрите.

При намаляване стойността на брояча LibreOfficeDev Basic проверява дали е достигната крайната стойност. Когато броячът подмине крайната стойност, цикълът автоматично завършва.

Операторите For…Next могат да се влагат един в друг. Ако не зададете променлива след оператора Next, Next автоматично се отнася за най-близкия оператор For.

Ако зададете стъпка 0, операторите между For и Next ще се повтарят постоянно.

Когато променя стойността на променливата брояч, LibreOfficeDev проверява за препълване отгоре или отдолу. Цикълът приключва, когато броячът надхвърли крайната стойност (при положителна стъпка) или стане по-малък от нея (при отрицателна стъпка).

За да завършите цикъла безусловно, използвайте оператора Exit For. Можете да го поставите където и да е в цикъла For…Next. Можете да дефинирате условие за изход със структура If…Then както следва:

      For...
          операторен блок
          If condition = True Then Exit For
          операторен блок
      Next

При вложени цикли For…Next безусловният изход Exit For напуска само един цикъл.

## Примери

В следващия пример са използвани два вложени цикъла, за да се сортира масив с 10 елемента (sEntry()), който е запълнен с различни стойности:

    Sub ExampleSort
    Dim sEntry(9) As String
    Dim iCount As Integer, iCount2 As Integer
    Dim sTemp As String
        sEntry = Array("Jerry","Patty","Kurt","Thomas","Michael",_
                     "David","Cathy","Susie","Edward","Christine")
        For iCount = 0 To 9
            For iCount2 = iCount + 1 To 9
                If sEntry(iCount) > sEntry(iCount2) Then
                    sTemp = sEntry(iCount)
                    sEntry(iCount) = sEntry(iCount2)
                    sEntry(iCount2) = sTemp
                End If
            Next iCount2
        Next iCount
        For iCount = 0 To 9
            Print sEntry(iCount)
        Next iCount
    End Sub

Долното обхожда съдържанието на масив, за да покаже всеки от съдържащите се в него елементи.

      Sub list_iteration
          cutlery = Array("вилица", "нож", "лъжица")
          For Each item in cutlery
              Print item
          Next ' item
      End Sub