Příkaz For...Next

Zopakuje příkazy v bloku mezi For...Next tolikrát, kolikrát je stanoveno.

Syntaxe:

Diagram příkazu For


For counter=start To end [Step step]
    blok příkazů
    [Exit For]
    blok příkazů
Next [counter]

Diagram příkazu For Each


  For Each item In list
      blok příkazů
  [Exit For]
      blok příkazů
  Next [item]

Proměnné:

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 LibreOffice 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 LibreOffice 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
note

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.


Příklady

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

Podpořte nás!