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

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

Синтаксис:

For брояч = начало To край [Step стъпка]

операторен блок

[Exit For]

операторен блок

Next [брояч]

Променливи:

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

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

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

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

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

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

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

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

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

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

For...

оператори

If условие = True Then Exit For

оператори

Напред

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

Пример

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

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sEntry(0) = "Йордан"

    sEntry(1) = "Петя"

    sEntry(2) = "Камен"

    sEntry(3) = "Тома"

    sEntry(4) = "Михаил"

    sEntry(5) = "Деян"

    sEntry(6) = "Катя"

    sEntry(7) = "Силвия"

    sEntry(8) = "Емил"

    sEntry(9) = "Христина"

    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