Ukaz For...Next

Ponovi ukaze med For in Next tolikokrat, kot se zahteva.

Skladnja:

For števec = start To konec [Step korak]

blok ukazov

[Exit For]

blok ukazov

Next [števec]

Spremenljivke:

Števec: Števec zanke ob začetku dobi vrednost, ki je navedena desno od enačaja (start). Veljavne so samo numerične spremenljivke. Števec zank se povečuje (ali zmanjšuje) v skladu s spremenljivko Step toliko časa, da je End mimo.

Start: Numerična spremenljivka, ki definira začetno vrednost ob začetku zanke.

End: Numerična spremenljivka, ki definira končno vrednost, ob koncu zanke.

Korak: predstavlja vrednost, s katero se števec v zanki povečuje oziroma zmanjšuje. Če Korak ni definiran, se števec v zanki poveča za 1. V tem primeru mora biti Konec večji od Starta. Če želite Števec zmanjševati, mora Konec biti manjši od Starta in Korak mora imeti negativno vrednost.

Število ponovitev zanke For...Next in ukazov v njej je določeno s parametri.

Ko se števec zanke poveča, LibreOffice Basic preveri, če končna vrednost ni bila dosežena. Takoj ko jo števec v zanki doseže, je zanke samodejno konec.

Ukaze For...Next je mogoče gnezditi. Če v ukazu Next ne navedete spremenljivke, se bo Next samodejno skliceval na najnovejši ukaz For.

Če navedete korak 0, se bodo ukazi med For in Next ponavljali brez konca.

Med odštevanjem števca LibreOffice Basic preverja, da ni prišlo do prelitja ali podlitja. Zanka se konča ko Števec preseže Konec (Korak pozitiven) ali ko pade pod Konec (kadar je Korak negativen).

Če želite zanko brezpogojno zapustiti, uporabite ukaz Exit For. Ta ukaz se mora nahajati znotraj zanke For...Next. Če želite preveriti pogoj za prenehanje, uporabite ukaz If...Then kot sledi:

For...

ukazi

If pogoj = True Then Exit For

ukazi

Next

Opomba: V ugnezdenih zankah For...Next se v primeru, da zanko zapustite z brezpogojnim Exit For, prekine samo ena zanka.

Primer

Naslednji primer uporablja dve ugnezdeni zanki, da razvrsti polje nizov z desetimi elementi (sVnos()), ki jih najprej napolnimo.

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sVnos(0) = "Janez"

    sVnos(1) = "Jana"

    sVnos(2) = "Jože"

    sVnos(3) = "Joža"

    sVnos(4) = "Miha"

    sVnos(5) = "Mihela"

    sVnos(6) = "Franc"

    sVnos(7) = "Francka"

    sVnos(8) = "Ivan"

    sVnos(9) = "Ivanka"

    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