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

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

Синтаксис:

Диаграма на оператора For


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

Диаграма на оператора For Each


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

Променливи:

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

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

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

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

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

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

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

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

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

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


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

При вложени цикли 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

Моля, подкрепете ни!