On-line učionica

13. mart 2012.

Petlje i ponavljanja

Filed under: C posle Pascal-a,Programiranje — jelena100janovic @ 9:05 am

Pogledaćemo C-ove mehanizme za kontrolu petlji i ponavljanja. Iako će neki od ovih mehanizama izgledati poznato i zaista će raditi kao što smo navikli u većini slučajeva, neke nestandardne mogućnosti su dostupne.

Naredba for

Naredba for u C-u ima sledeći oblik:

for(izraz1;izraz2;izraz3) naredba/e

izraz1 inicijalizuje; izraz2 je uslov prekida; izraz3 je promena (što može biti više od prostog uvećanja za jedan).

C suštinski tretira for petlje kao naredbe tipa while.

Na primer:

ispisuje:

na ekran.

Sve sledeće su ispravne C naredbe. Praktična primena takvih naredbi nije važna ovde, samo pokušavamo da ilustrujemo čudne elemente jezika C, pa u tom smislu mogu biti korisne:

for(x=0;((x>3)&&(x<9));x++)
for(x=0,y=4;((x>3)&&(y<9));x++,y+=2)
for(x=0,y=4,z=4000;z;z/=10)

Drugi primer pokazuje da se više izraza može razdvojiti znakom ,.

U trećem primeru petlja će nastaviti da se vrti dok z ne postane 0.

Naredba while

Naredba while je slična onima koje se koriste u drugim jezicima, iako se sa izrazom može učiniti više – standardna osobina C-a.

Naredba while ima oblik:

while(izraz) naredba

Na primer:

ispisuje:

na ekran.

Zbog toga što while petlja može prihvatati izraze, a ne samo uslove, sledeće je ispravno:

while(x–);
while(x=x+1);
while(x+=5);

Pri korišćenju ove vrste izraza, samo kada operacija x–, x=x+1, ili x+=5, da rezultat 0, while uslov će pasti i izaći ćemo iz petlje.

Možemo ići i dalje i izvršiti cele operacije unutar while izraza:

while(i++<10);
while((ch=getchar())!=’q’)    putchar(ch);

Prvi primer povećava i do 10.

Drugi primer koristi standardnu C biblioteku sa funkcijama getchar() – čita znak sa tastature – i putchar() – ispisuje dati znak na ekran. While petlja će nastaviti da čita sa tastature i ispisuje znakove na ekran dok ne pročita znak ’q’. Ova vrsta operacija se puno koristi u C-u i to ne samo kod čitanja znakova!

Naredba do-while

C-ova naredba do-while ima oblik:

do naredba while(izraz);

Ona liči na PASCAL-ovu naredbu repeat-until sem što do-while izraz treba da bude ispunjen.

Na primer:

takođe ispisuje:

Postfiksni operator x– koristi trenutnu vrednost promenljive x za ispis, a onda umanjuje x.

break i continue

C obezbeđuje dve naredbe za kontrolu petlji: break – izlazi iz petlje ili switch naredbe; continue – preskače jedan korak u petlji.

Razmotrite sledeći primer gde učitavamo cele brojeve i obrađujemo ih u skladu sa sledećim uslovima. Ako je vrednost koju smo pročitali negativna, želimo da ispišemo poruku o grešci i napustimo petlju. Ako je pročitana vrednost veća od 100, želimo da je ignorišemo i nastavimo sa sledećim podatkom. Ako je vrednost 0, želimo da završimo petlju.

Ovaj program ispisuje:

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Blog na WordPress.com.

%d bloggers like this: