ďťż

for

Lemur zaprasza
















Rozkaz For, Exit For




    ll
    ll
    ll
    ll
    ll
    ll
    ll





For
Pętla For nazywana jest również pętlą For-Next. Pozwala ona na wielokrotne powtarzanie bloku kodu. W przeciwieństwie do pętli typu wykonuje to ściśle określoną ilość razy. Powtórzenia pętli zwane są również iteracjami pętli.



Składnia instrukcji For:


For ZmiennaLicznik = WartośćPoczątkowa To WartośćKońcowa [Step WartośćKroku]

   Blok instrukcji VB wykonywany gdy ZmiennaLicznik <= WartośćKońcowa (jeżeli WartośćKroku jest dodatnia), lub gdy ZmiennaLicznik>= WartośćKońcowa (gdy WartośćKroku jest ujemna)

Next [ZmiennaLicznik]




Wyrażenia w nawiasach [] są opcjonalne i nie muszą występować w instrukcji. W przypadku, gdy pominięta zostanie część rozkazu określająca WartośćKroku, Visual Basic przyjmie domyślną WartośćKroku=1. Wpisywanie ZmiennejLicznik za słowem Next nie jest konieczne, jednak poprawia czytelność i analizę zapisu, szczególnie przy zagnieżdżonych instrukcjach For.


ZmiennaLicznik musi być zmienną (nie może być np. elementem sterującym). Jest ona wykorzystywana przez pętlę jako licznik powtórzeń.


Przypadek gdy WartośćKroku jest dodatnia:

Najpierw pętla For przypisuje ZmiennejLicznik wartość która jest podana jako WartośćPoczątkowa (może to być wartość liczbowa, wyrażenie, inna zmienna).

Następnie pętla sprawdza czy wartość ZmiennejLicznik jest większa niż wartość podana jako WartośćKońcowa (może to być wartość liczbowa, wyrażenie, inna zmienna). Jeżeli ZmiennaLicznik nie jest większa to wykonywany jest blok rozkazów zawarty wewnątrz instrukcji For (aż do Next [ZmiennaLicznik]). Pętla zwiększa wartość ZmiennejLicznik o wartość podaną jako WartośćKroku. Następnie pętla ponownie sprawdza, czy wartość ZmiennejLicznik jest większa niż WartośćKońcowa. Jeżeli ZmiennaLicznik jest mniejsza lub równa to wykonywany jest blok rozkazów zawarty wewnątrz instrukcji For. Pętla kontynuuje swoje działanie, zwiększając za każdym razem wartość ZmiennejLicznik o WartośćKroku. Gdy wartość ZmiennejLicznik będzie większa niż WartośćKońcowa pętla zakończy swoje działanie i nie wykona już zawartego w niej bloku instrukcji.


Przypadek gdy WartośćKroku jest ujemna:

Najpierw pętla For przypisuje ZmiennejLicznik wartość która jest podana jako WartośćPoczątkowa (może to być wartość liczbowa, wyrażenie, inna zmienna).

Następnie pętla sprawdza czy wartość ZmiennejLicznik jest mniejsza niż wartość podana jako WartośćKońcowa (może to być wartość liczbowa, wyrażenie, inna zmienna). Jeżeli ZmiennaLicznik nie ma mniejszej wartości to wykonywany jest blok rozkazów zawarty wewnątrz instrukcji For (aż do Next [ZmiennaLicznik]). Pętla zmniejsza wartość ZmiennejLicznik o wartość podaną jako WartośćKroku. Następnie pętla ponownie sprawdza, czy wartość ZmiennejLicznik jest mniejsza niż WartośćKońcowa. Jeżeli ZmiennaLicznik nie jest mniejsza to wykonywany jest blok rozkazów zawarty wewnątrz instrukcji For. Pętla kontynuuje swoje działanie, zmniejszając za każdym razem wartość ZmiennejLicznik o WartośćKroku. Gdy wartość ZmiennejLicznik będzie mniejsza niż WartośćKońcowa pętla zakończy swoje działanie i nie wykona już zawartego w niej bloku instrukcji.



Przykład użycia instrukcji For:



intSuma=0

For intLicznik=2 To 100 Step 2

   intSuma=intSuma+intLicznik

Next intLicznik



(, i funkcja zostały opisane w innych częściach kursu.)


Zmiennej inSuma przypisywana jest wartość 0. Pętla For wykorzystuje zmienną intLicznik jako licznik powtórzeń. Najpierw przypisuje jej wartość 2. Sprawdza, czy jest mniejsza niż 100 i wykonuje blok rozkazów: do zmiennej intSuma dodawana jest wartość intLiczba. W wyrażeniu podstawienia najpierw obliczana jest wartość wyrażenia po prawej stronie, a potem przypisywana jest zmiennej po lewej stronie znak "=". Najpierw więc obliczane jest 0+2 (intSuma+intLicznik) a potem wynik przypisywany jest zmiennej intSuma. Następnie pętla zwiększa wartość zmiennej intLicznik o 2 (Step 2). Znowu porównują ją z 100 i wykonuje blok rozkazów. Teraz pod zmienną intSuma podstawia wartość 2+4 (zmieniona w poprzedniej iteracji wartość intSuma + nowa wartość intLicznik). Pętla kontynuuje swoje działanie, aż do momentu, gdy intLicznik będzie miała większą wartość niż 100 (to będzie 102). W ten sposób w zmiennej intSuma będzie suma wszystkich liczb parzystych od 0 do 100.

Sposób zmian wartości zmiennych intLicznik i intSuma po każdej iteracji:


Nr Iteracji
intLicznik
intSuma


-
-
0


1
2
0 + 2 = 2


2
2 + 2 = 4
2 + 4 = 6


3
4 + 2 = 6
6 + 6 = 12


...
...
...


50
98 + 2 = 100
2450 + 100 = 2550


51
100 + 2 = 102
-


Gdy intLicznik przekroczy wartość końcową (100) pętla kończy działanie. Zmienna intLicznik zmienia swoją wartość od 0 do 100 co 2. Tworzy więc ciąg liczb parzystych. Zmienna intSuma (przechowuje sumę wszystkich wcześniej zsumowanych liczb) zmienia swoją wartość za każdym razem o intLicznik. Tworzy więc sumę wszystkich liczb parzystych od 0 do 100.


Staraj się nie zmieniać wartości ZmiennejLicznik wewnątrz bloku rozkazów pętli For. Może to doprowadzić do powstania pętli nieskończonej ("zapętlenia" się programu), gdy ZmiennaLicznik nigdy nie osiągnie WartościKońcowej.


Przykład powstania pętli nieskończonej:


For intLicznik=2 To 100 Step 2

   intLicznik=6

Next intLicznik



W tym przykładzie zmienna intLicznik nigdy nie osiągnie wartości 100, choć jest za każdym razem zwiększana o 2. Jednak wewnątrz ciała pętli jest jej przypisywana wartość 6. Nawet jeżeli w kolejnej iteracji pętla zwiększy jej wartość do 8, rozkaz podstawienia znowu przypisze jej wartość 6. Wartość zmiennej intLicznik będzie się więc zmieniała pomiędzy 6 i 8 i nigdy nie osiągnie wartości 100.


Instrukcja For pozwala na zagnieżdżanie (umieszczanie instrukcji For wewnątrz ciała innej instrukcji For). Należy jednak pamiętać aby każdej z zagnieżdżonych pętli przyporządkować inną zmienną jako ZmiennaLicznik. W przeciwnym przypadku doprowadzi to do powstania błędu (Visual Basic 5 zgłosi, że ta zmienna jest już wykorzystywana w innej działającej pętli).




Exit For
Może się zdarzyć, że konieczne jest opuszczenie pętli przed zakończeniem jej działania. Może to być potrzebne np. gdy dalsze działanie pętli doprowadzi do błędu. Instrukcją pozwalającą na przerwanie działania pętli jest Exit For. Powoduje ona na natychmiastowe przerwanie działania pętli bez względu na to ile iteracji zostało wykonane i ile pozostało do wykonania.


Składnia instrukcji Exit For:


Exit For




Instrukcja Exit For przeważnie poprzedzona jest instrukcją warunkową (najczęściej ) i powoduje przejście do rozkazu znajdującego się bezpośrednio za pętlą (za Next [ZmiennaLicznik]).



Przykład użycia instrukcji Exit For:



For intLicznik=1 To 10

   if (intLiczba=intLicznik) Then

     Exit For

   End If

   sngWynik=1/(intLicznik-intLiczba)

   intWiadomosc=MsgBox(sngWynik)

Next intLicznik



(, , , instukcja i funkcja zostały opisane w innych częściach kursu.)


Pętla wykorzystuje zmienną intLicznik jako licznik powtórzeń. Podstawia pod nią kolejne wartości od 1 do 10 i oblicza wyrażenie 1/(intLicznik-intLiczba). W przypadku gdyby wartości zmiennych intLicznik i intLiczba były takie same, wygenerowany zostałby błąd dzielenia przez 0. Stąd zabezpieczenie, które kończy działanie pętli, gdy wartości tych zmiennych będą równe.















|
|
|
|


|




Poprzednia |
Wyżej |
Strona główna |
Spis treści |
Index haseł |
Opis VB












  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza