Obsah

# Příkaz For...Next

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

## Syntaxe:

    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]

## 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

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