Nápověda Collabora Office 24.04
Zopakuje příkazy v bloku mezi For...Next tolikrát, kolikrát je stanoveno.
For counter=start To end [Step step]
blok příkazů
[Exit For]
blok příkazů
Next [counter]
For Each item In list
blok příkazů
[Exit For]
blok příkazů
Next [item]
counter: Čítači smyčky counter se na začátku přiřadí hodnota vpravo od rovnítka (start). Platné jsou pouze číselné proměnné. Čítač smyčky se zvyšuje nebo snižuje podle proměnné step, dokud nedosáhne hodnoty end.
start: Číselná proměnná, která určuje počáteční hodnotu čítače smyčky.
end: Číselná proměnná určující konečnou hodnotu čítače smyčky.
step: Nastaví hodnotu kroku, o kterou se zvyšuje nebo snižuje čítač smyčky. Pokud není step určen, zvyšuje se čítač o 1. V tom případě musí být end větší než start. Pokud chcete counter snižovat, musí být end menší než start a step musí mít zápornou hodnotu.
Smyčka For...Next provádí všechny příkazy ve smyčce po určený počet opakování.
Při snižování nebo zvyšování hodnoty counter Collabora Office Basic kontroluje, zda již čítač dosáhl nebo překročil koncovou hodnotu end. Jakmile k tomu dojde, smyčka automaticky skončí.
Příkazy For...Next je možné vkládat do sebe (vnořovat). Pokud za příkazem Next nezadáte proměnnou, automaticky odkazuje na nejbližší poslední příkaz For.
Pokud určíte krok 0, příkazy mezi For a Next se opakují neustále.
Při snižování či zvyšování čítače kontroluje Collabora Office Basic přetečení nebo podtečení. Smyčka skončí, když counter překročí hodnotu end (kladný krok) nebo je menší než hodnota end (záporný krok).
Pro bezpodmínečné ukončení smyčky použijte příkaz Exit For. Tento příkaz musí být ve smyčce For...Next. Pro ukončovací podmínku je možné použít příkaz If...Then:
For...
blok příkazů
If condition = True Then Exit For
blok příkazů
Next
Ve vnořených smyčkách For...Next platí, že pokud použijete bezpodmínečné ukončení Exit For, ukončí se jen jedna smyčka.
V následujícím příkladě jsou použity dvě vnořené smyčky k seřazení skupiny řetězců s 10 prvky ( sEntry() ), které jsou naplněny různým obsahem:
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
Tento příklad ukazuje, jak zobrazit obsah každé položky pole.
Sub list_iteration
cutlery = Array("fork", "knife", "spoon")
For Each item in cutlery
Print item
Next ' item
End Sub