Petlje u Visual Basic Konzolnoj Aplikaciji
Podsetnik - Iteracije |
1
PETLJE (ITERACIJE) - podsetnik
01. Šta su petlje i
č
emu služe?
Vrlo pojednostavljeno posmatrano, petlje su način da se neki programski redovi izvrše više puta, ali da se
napišu samo jednom. Programski redovi koji se izvršavaju više puta su TELO petlje. Na primer, u kodu:
Dim
i
As
Integer
For
i = 1
To
1000
Console.WriteLine(i)
Next
Console.ReadLine()
osečeni red se izvršava 1000 puta, a napisan je samo jedanput.
02. Koje su vrste petlji?
Na časovima vežbi smo prikazali While i For-Next petlje. Sledi njihovo detaljnije objašnjenje.
03. Iz
č
ega se petlje sastoje?
Svaka petlja ima sledeće elemente:
1.
Oznaku za početak (DO, FOR)
2.
Kontrolnu promenljivu (to je promenljiva od čije vrednosti zavisi da li će se izvršiti telo petlje)
3.
Inicijalizaciju kontrolne promenljive (red u kojem kontrolna promenljiva dobija početnu
vrednost)
4.
Ispitivanje ispunjenosti uslova izvršavanja tela petlje (može da bude na početku ili na kraju kod
While petlji, a kod For-Next petlj je uvek na početku) putem ispitivanja vrednosti kontrolne
promenljive
5.
Telo petlje (jedan ili više redova)
6.
Red u kojem se menja vrednost kontrolne promenljive (kod While petlje se ovaj red posebno piše,
a kod For-Next petlje ulogu ovog reda ima red Next), njeno inkrementiranje ili dekrementiranje
7.
Oznaku za kraj (LOOP, NEXT)
While petlja sa ispitivanjem uslova na po
č
etku:
Dim
i
As Integer
i = 1
Do While
(i <= 100)
Console.WriteLine(i)
i += 1
Loop
Console.ReadLine()
1
3
7
6
5
4
Kontrolna promenljiva je promenljiva
i
.
While petlja sa ispitivanjem uslova na kraju:
Dim
i
As Integer
i = 1
Do
Console.WriteLine(i)
i += 1
Loop While
(i <= 100)
Console.ReadLine()
1
3
7
6
5
4
Kontrolna promenljiva je promenljiva
i
.
Podsetnik - Iteracije |
2
For-Next petlja
Kontrolna promenljiva je promenljiva
i
.
04. Kako petlje funkcionišu?
Uzmimo za primer sledeću While petlju:
01
Dim
i
As
Integer
02
03
i = 1
04
Do
While
(i <= 3)
05
Console.WriteLine(i)
06
i += 1
07
Loop
08
Console.ReadLine()
Gde se nalaze elementi petlje opisani u prethodnom pitanju?
1. Oznaka za početak:
Red 04
2. Kontrolna promenljiva: promenljiva
i
, jer od njene vrednosti zavisi da li će se telo petlje izvršiti. Kako
otkriti koja je promenljiva kontrolna? Tako što pogledate red u kojem se vrši provera ispunjenosti
uslova ulaska u telo petlje. Promenljiva čija se vrednost u tom redu ispituje je kontrolna promenljiva.
Kontrola ulaska u telo petlje se može nalaziti na početku petlje (posle ključne reči DO) i na kraju petlje
(posle ključne redi LOOP).
3. Inicijalizacija kontrolne promenljive (red u kojem kontrolna promenljiva dobija početnu vrednost):
Red 03
4. Ispitivanje ispunjenosti uslova izvršavanja tela petlje (u ovom primeru se ispitivanje vrši na početku
petlje, a u narednom primeru se ono vrši na kraju petlje):
Red 04
5. Telo petlje:
Redovi 05 i 06
6. Red u kojem se menja vrednost kontrolne promenljive:
Red 06
7. Oznaka za kraj:
Red 07
Analizirajmo gornji primer red po red:
U redu 01 se vrši deklarisanje promenljive
i
. Red 02 je prazan, pa ga računar prilikom izvršavanja
programa i ne vidi.
U redu 03 se promenljivoj
i
dodeljuje vrednost 1. Promenljiva
i
je kontrolna promenljiva While petlje
(videti gornje objašnjenje).
U redu 04 se nalazi oznaka za početak petlje (oznaka
DO
). Posle oznake sledi While sa uslovom u zagradi,
koji uslov se ispituje svaki put kada program dođe u red br. 04. Uslov definisan u zagradi se tumači:
izvršiti telo petlje samo ako je vrednost promenljive
i
manja ili jednaka 3. Pošto je ovaj uslov zadovoljen,
prelazi se na red 05. Da uslov nije zadovoljen, program bi "skočio" na red br. 08, tj. na prvi red posle
oznake kraja petlje (oznaka za kraj se nalazi u redu 07).
U redu 05 se ispisuje vrednost promenljive
i
, tj. ispisuje se broj 1.
Red 06 povećava vrednost promenljiive
i
, koja sada iznosi 2.

Podsetnik - Iteracije |
4
na red 05, u kojem ispisuje broj 2, odnosno, ispisuje vrednost promenjlive
i
, posle čega prelazi na red 06.
U redu 06 povećava vrednost kontrolne promenljive na 3, prelazi na red 07, konstatuje zadovoljenje
uslova (2 je manje od 3), posle čega se vraća se na red br. 04. Posle reda 04 prelazi na red 05, ispisuje
vrednost promenljive
i
, tj. ispisuje broj 3. U narednom redu, redu br. 06, vrednost promenljive
i
postaje 4,
zbog čega uslov u redu br. 07 nije ispunjen. Pošto uslov nije ispunjen, PROGRAM
NE
SKAČE na red 04, već
prelazi na sledeći red, red br. 08.
Izgled ekrana:
Postavićemo isto pitanje kao kod prethodnog primera:
Šta bi se desilo, da je u redu br. 03 promenljivoj
i
dodeljena vrednost 10, tj:
03
i = 10
Program bi ispisao broj 10. Zašto? Već smo rekli da se u redu br. 04 NE VRŠI ISPITIVANJE USLOVA
ULASKA U PETLJU, već se u ovom primeru kontrola ponavljanja vrši na KRAJU PETLJE. Zbog toga, ova
petlja se prvi put izvršava BEZ ISPITIVANJA USLOVA, pa će se, kao rezultat rada ovog programa, ispisati
broj 10 na ekranu.
Objašnjenje:
Nakon deklaracije promenljive
i
(red 01) i njene inicijalizacije na vrednost 10 (red 03), program stiže do
reda 04, u kojem se nalazi oznaka za početak petlje, DO. Međutim, pošto NEMA ISPITIVANJA USLOVA ZA
ULAZAK u petlju (da podsetimo, taj se uslov sada nalazi na kraju petlje, u redu br. 07), program prelazi na
red 05 u kojem ispisuje vrednost promenljive
i
, tj. ispisuje broj 10. U narednom redu, dakle redu br. 06,
vrednost promenljive
i
se povećava na 11. Prelazi se na red 07, u kojem se konstatuje da uslov povratka
na red 04 (na red koji nosi oznaku početka petlje - DO) NIJE ISPUNJEN, pa program prelazi na red br. 08,
u kojem čeka da korisnik programa pritisne ENTER. Izgled ekrana je sledeći:
PETLJE, KOD KOJIH SE USLOV ULASKA U PETLJU ISPITUJE NA KRAJU PETLJE se izvršavaju MINIMALNO
JEDNOM, a maksimalno beskonačno mnogo puta.
Dakle, šta je razlika između petlji kod kojih je ispitivanje na početku i petlji kod kojih je ispitivanje na
kraju? Prva vrsta petlji se minimalno izvršava 0 puta, a druga vrsta petlji se minimalno izvršava jednom.
05. Šta je mrtva petlja?
Mrtva petlja je svaka ona petlja, kod koje se nikada ne stekne uslov iskakanja iz petlje. Drugim rečima, to
su one petlje kod kojih je uslov ulaska u petlju uvek zadovoljen, a u telu petlje ne postoji ni jedan
programski red koji može dovesti do promene vrednosti kontrolne promenljive, usled čega bi uslov
ulaska u petlju bio nezadovoljen. U prethodnim primerima, mrtva petlja bi se, na primer, mogla postići
tako, što bi se izostavio red koji povećava vrednost kontrolne promenljive:
01
Dim
i
As
Integer
02
03
i = 1
04
Do
While
(i <= 3)
05
Console.WriteLine(i)
06
Loop
07
Console.ReadLine()
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti