For...Next İfadesi

For...Next blokları içerisindeki deyimleri belirtilen sayıda tekrarlar.

Sözdizimi:

For counter=başlangıç To son [Step adım]

ifade bloğu

[Exit For]

ifade bloğu

Sonraki [counter]

Değişkenler:

Sayaç: Eşit işaretinin sağındaki değere (başlangıç) ilklendirilen döngü sayacı. Sadece sayısal değerler geçerlidir. Döngü sayacı Adım değişkenine göre End geçilene kadar artar veya azalır.

Başlangıç: Döngünün başında ilklendirme değerini tanımlayan sayısal değişken.

Son: Döngünün sonunda son değeri tanımlayan sayısal değişken.

Adım: Döngü sayacının ne kadar artacağını veya azalacağını belirten değer. Eğer Adım tanımlanmamışsa, döngü sayacı 1 artar. Bu durumda, Son değeri Başlangıç değerinden büyük olmalırıd. Eğer Sayacı dşürmek istiyorsanız, Son değeri Başlangıç değerinden küçük olmalıdır ve Adım değeri negatif bir sayıya atanmalıdır.

For...Next döngüsü parametrelerle tanımlanmış sayı kadar döngü içerisindeki deyimleri tekrarlar.

Sayaç değeri düştükçe, LibreOffice Basic son değerine erişilip erişilmediğini kontrol eder. Sayaç değeri son değerini geçtiği anda, döngü otomatik olarak sonlanır.

For...Next deyimlerini iç içe yazmak da mümkündür. Eğer Next deyiminden sonra bir değişken tanımlamazsanız, Next otomatik olarak en yakın For deyimine işaret eder.

Eğer artış olarak 0 tanımlarsanız, For ve Next arasındaki deyimler durmadan tekrar edilir.

Sayaç değişkeninini azaltırken, LibreOffice Basic yukarı veya aşağı doğru değer aşımını kontrol eder. Döngü Sayacın Sonu aşması (pozitif adım değeri) veya Son değerinden küçük olması (negatif Adım değeri) durumunda sonlanır.

Exit For deyimini belli durumdan bağımsız döngüyü sonlandırmak için kullanın. Bu deyim For...Next döngüsü içeriside olmalı. If...Then deyimini çıkış durumunu takip eder şekilde test etmek için kullanın:

For...

durumlar

If durum = True Then Exit For

durumlar

Next

Not: İç içe geçmiş For...Next döngülerinde, eğer bir döngüyü Exit For ile belli bir durumdan bağımsız tekrederseniz, sadece bir döngüden çıkarsınız.

Örnek

Takip eden örnek 10 elemanlı, önce değişik içerikler ile doldurulan, bir karakter dizisi dizisini ( sEntry() ) sıralamak için iç içe iki döngü kullanır:

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sEntry(0) = "Jerry"

    sEntry(1) = "Patty"

    sEntry(2) = "Kurt"

    sEntry(3) = "Thomas"

    sEntry(4) = "Michael"

    sEntry(5) = "David"

    sEntry(6) = "Cathy"

    sEntry(7) = "Susie"

    sEntry(8) = "Edward"

    sEntry(9) = "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