27/09/ Języki programowania 1 Piotr Górczyński Pętle
27/09/ Pętle Pętle pozwalają wykonać wielokrotnie ten sam zestaw instrukcji. Pojedyncze wykonanie nazywamy iteracją. Ilość wykonań może być określona z góry przez konkretną liczbę lub może zależeć od prawdziwości lub fałszu wyrażenia logicznego.
27/09/ Pętla For-Next Pętla For-Next wykonuje rozkazy zmieniając Zmienna od wartości Początek do wartości Koniec co 1, chyba że sprecyzowano inną wartość w zmiennej Krok Składnia: For Zmienna = Początek To Koniec _ [Step Krok] rozkazy Next [Zmienna]
27/09/ Działanie For-Next Kod programu i=0 Linia1 For i=1 To 3 Linia2 Next i Linia3 Linia4 Wykonanie programuWartość i Linia10 Linia21 Linia22 Linia23 Linia34 Linia44
27/09/ Pętla Do While-Loop Pętla Do While-Loop wykonuje rozkazy dopóty, dopóki wyrażenie jest prawdziwe (True) Składnia: Do While Wyrazenie rozkazy Loop
27/09/ Działanie Do While-Loop Kod programu i=0 Linia1 Do While i<3 Linia2 i=i+1 Loop Linia3 Linia4 Wykonanie programuWartość i Linia10 Linia20 i=i+11 Linia21 i=i+12 Linia22 i=i+13 Linia33 Linia43
27/09/ Pętla Do While-Loop i bazy Pętla Do While-Loop jest często wykorzystywana w bazach danych, gdy chcemy wykonać operację na wszystkich rekordach zestawu danych, a niemożliwe jest uzyskanie informacji o ilości rekordów. Jako wyrażenia warunkującego dalsze wykonywanie pętli używana jest konstrukcja dopóty nie koniec pliku czyli: Do While Not zestaw_danych.EOF rozkazy Loop gdzie EOF jest skrótem od End-Of-File (Koniec-Pliku)
27/09/ Działanie Do While-Loop i bazy Option Explicit Dim cnDatabase As Connection Public rsRecordset As Recordset Dim strSQL As String Private Sub Form_Load() Dim dbPath As String dbPath = "SWW.mdb" Set cnDatabase = New Connection cnDatabase.CursorLocation = adUseClient cnDatabase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";Persist Security Info=False" strSQL = "SELECT login From UZYTKOWNIK" Set rsRecordset = New Recordset rsRecordset.Open strSQL, cnDatabase, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = rsRecordset rsRecordset.MoveFirst Do While Not rsRecordset.EOF MsgBox rsRecordset.Fields("login").Value rsRecordset.MoveNext Loop End Sub
27/09/ Inne pętle Inne pętle: Do – Loop While Do Until – Loop Do – Loop Until Różnią się one miejscem sprawdzania wyrażenia (początek pętli lub jej koniec) oraz testowaniem wyrażenia (pętla jest wykonywana gdy wyrażenie jest prawdziwe lub fałszywe).
27/09/ Wychodzenie z pętli Jeśli istnieje potrzeba wyjścia z pętli z innych powodów niż zdefiniowanych w ilości iteracji lub wyrażeniu, należy użyć instrukcji wyjścia z pętli. Składnia: Dla pętli For-Next Exit For Dla pętli Do-Loop Exit Do
27/09/ Przykład wychodzenia z pętli Option Explicit Private Sub Form_Load() Dim i As Integer For i = 1 To 3 If InputBox("Jakie jest hasło?") = "sezam" Then Exit For End If MsgBox "Złe hasło!" Next i If i = 4 Then End End If End Sub
27/09/ Przykład zagnieżdżania pętli Kod programu i=0 j=0 Linia1 For i=1 to 2 Linia2 For j=1 to 3 Linia3 Next j Next i Linia4 WykonanieWartość iWartość j programu Linia100 Linia210 Linia3 11 Linia312 Linia313 Linia224 Linia3 21 Linia322 Linia323 Linia434
27/09/ Literatura vb4all.canpol.pl Microsoft Visual Basic 6.0 Professional, Michael Halvorson, Wydawnictwo RM 1998 Poznaj Visual Basic 6 w 10 minut, Lowell Mauer, Wydawnictwo Intersoftland 1999 Po prostu Visual Basic 6, Harold Davis, Wydawnictwo Helion 2000