V tej vadnici se boste s pomočjo primerov naučili ustvarjati zanko v programiranju C.
Pri programiranju se zanka uporablja za ponavljanje bloka kode, dokler ni izpolnjen določen pogoj.
Programiranje C ima tri vrste zank:
- za zanko
- medtem ko zanka
- do … while zanka
O for
zanki bomo izvedeli v tej vadnici. V naslednjem vajah bomo spoznali while
in do… while
zanke.
za Loop
Sintaksa for
zanke je:
for (initializationStatement; testExpression; updateStatement) ( // statements inside the body of loop )
Kako deluje zanka?
- Stavek o inicializaciji se izvede samo enkrat.
- Nato se oceni testni izraz. Če je testni izraz ovrednoten, je
for
zanka prekinjena. - Če pa je testni izraz ovrednoten z true,
for
se izvršijo stavki znotraj telesa zanke in posodobi izraz. - Spet se ovrednoti testni izraz.
Ta postopek se nadaljuje, dokler testni izraz ni napačen. Ko je testni izraz napačen, se zanka konča.
Če želite izvedeti več o testnem izrazu (ko je testni izraz ovrednoten kot true in false), si oglejte relacijske in logične operatorje.
za diagram zanke
Primer 1: za zanko
// Print numbers from 1 to 10 #include int main() ( int i; for (i = 1; i < 11; ++i) ( printf("%d ", i); ) return 0; )
Izhod
1 2 3 4 5 6 7 8 9 10
- i je inicializiran na 1.
- Oceni se testni izraz
i < 11
. Ker je 1 manj kot 11 res, se telofor
zanke izvede. To bo na zaslon natisnilo 1 (vrednost i). - Izvede se stavek posodobitve
++i
. Zdaj bo vrednost i 2. 2. Spet se testni izraz oceni na true in izvede se telo zanke for. To bo na zaslon natisnilo 2 (vrednost i). - Ponovno
++i
se izvede stavek update in oceni testni izrazi < 11
. Ta postopek se nadaljuje, dokler ne dopolnim 11 let. - Ko postanem 11, bo i <11 napačen in
for
zanka se konča.
Primer 2: za zanko
// Program to calculate the sum of first n natural numbers // Positive integers 1,2,3… n are known as natural numbers #include int main() ( int num, count, sum = 0; printf("Enter a positive integer: "); scanf("%d", &num); // for loop terminates when num is less than count for(count = 1; count <= num; ++count) ( sum += count; ) printf("Sum = %d", sum); return 0; )
Izhod
Vnesite pozitivno celo število: 10 Vsota = 55
Vrednost, ki jo vnese uporabnik, je shranjena v spremenljivki num. Recimo, da je uporabnik vnesel 10.
Štetje se inicializira na 1 in preskusni izraz se ovrednoti. Ker je testni izraz count<=num
(1 manjši ali enak 10) resničen, se telo for
zanke izvede in vrednost vsote bo enaka 1.
Nato ++count
se izvede stavek za posodobitev in štetje bo enako 2. Spet se ovrednoti testni izraz. Ker je tudi 2 manj kot 10, se testni izraz oceni na true in telo for
zanke se izvede. Zdaj bo vsota enaka 3.
Ta postopek se nadaljuje in vsota se izračuna, dokler število ne doseže 11.
Ko je štetje 11, se testni izraz izračuna na 0 (napačno) in zanka se konča.
Nato se vrednost sum
zaslona natisne na zaslon.
O while
zanki in do… while
zanki bomo izvedeli v naslednji vadnici.