For...Next instrukzioa

For...Next blokearen barruko instrukzioak errepikatzen ditu zenbait aldiz.

Sintaxia:

For instrukzioaren diagrama


For counter=start To end [Step step]
    instrukzioen blokea
    [Exit For]
    instrukzioen blokea
Next [counter]

For Each instrukzioaren diagrama


  For Each item In list
      instrukzioen blokea
  [Exit For]
      instrukzioen blokea
  Next [item]

Aldagaiak:

counter: Berdin ikurraren eskuineko balioari (start) hasieran esleitutako counter begizta-kontagailua. Zenbakizko aldagaiak soilik dira baliozkoak. Begizta-kontagailua step aldagaiaren arabera handitzen edo txikitzen da, end pasatu arte.

start: Begiztaren hasierako balioa definitzen duen zenbakizko balioa.

end: Begiztaren amaierako balioa definitzen duen zenbakizko balioa.

step: Begizta-kontagailua zenbatean handitu edo txikituko den ezartzen du. Ez bada urratsa zehazten, begizta-kontagailua 1 balioarekin handitzen da. Kasu horretan, amaiera balioak hasiera balioak baino handiagoa izan behar du. Nahi bada kontagailua txikitu, amaiera balioak hasiera balioak baino txikiagoa izan behar du eta urratsa parametroari balio negatiboa eman behar zaio.

For...Next begiztak begiztako instrukzio guztiak errepikatzen ditu parametroek zehazten duten adina alditan.

counter aldagaia txikitzen den neurrian, LibreOffice Basic-ek egiaztatzen du funtzioa end baliora iritsi den ala ez. counter aldagaiak end balioa gainditzen duenean, begizta automatikoki amaitzen da.

For...Next instrukzioak habiara daitezke. Next instrukzioaren ondoren aldagairik zehazten ez baduzu, Next instrukzioak azken For instrukzioari egingo dio erreferentzia automatikoki.

0 balioko igoera zehazten baduzu, For eta Next instrukzioak etengabe errepikatuko dira.

Kontagailu-aldagaia atzerantz zenbatzean, LibreOffice Basic lengoaiak egiaztatzen du horrek amaierako balioa goitik edo behetik gainditzen duen. Begizta amaitzen da counter aldagaiak end baino handiagoa denean ('Step' balio positiboa) edo end baino txikiagoa denean ('Step' balio negatiboa).

Erabili Exit For instrukzioa begiztatik baldintzarik gabe irteteko. Instrukzioak For...Next begiztaren barruan egon behar du. Irteteko baldintzak probatzeko, erabili If...Then instrukzioa hemen azaltzen den bezala:


  For...
      instrukzioen blokea
      If condition = True Then Exit For
      instrukzioen blokea
  Next
note

Habiaratutako For...Next begiztetan, begiztatik baldintzarik gabe irteten bazara Exit For erabilita, begizta bakar batetik soilik irtengo zara.


Adibideak

Hurrengo adibideak, habiaratutako bi begizta erabiltzen ditu eduki anitzekin beteta dagoen eta 10 elementu dituen kate-matrize bat ( sEntry() ) ordenatzeko:


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

Honek matrize baten edukia arakatzen du matrizeko elementu guztiak bistaratzeko.


  Sub zerrenda_iterazioa
      mahai-tresnak = Array("sardexka", "labana", "koilara")
      For Each elementua in mahai-tresnak
          Print elementua
      Next ' elementua
  End Sub

Emaguzu laguntza!