Selles õpetuses õpite näidete abil looma C-programmeerimise jaoks silmuse jaoks.
Programmeerimisel kasutatakse silmust koodiploki kordamiseks, kuni määratud tingimus on täidetud.
C-programmeerimisel on kolme tüüpi silmuseid:
- silmuse jaoks
- samas silmus
- tee … silmuse ajal
Me õpime for
loopi kohta selles õpetuses. Järgmises õpetuses õpime while
ja loome do… while
.
Loopi jaoks
for
Silmuse süntaks on:
for (initializationStatement; testExpression; updateStatement) ( // statements inside the body of loop )
Kuidas silmus töötab?
- Initsialiseerimisavaldus täidetakse ainult üks kord.
- Seejärel hinnatakse testi ekspressiooni. Kui testväljendit hinnatakse valeks,
for
lõpetatakse silmus. - Kuid kui testi avaldise väärtuseks on seatud tõene,
for
käivitatakse tsükli sisemuses olevad avaldused ja värskenduse avaldist värskendatakse. - Jällegi hinnatakse testi ekspressiooni.
See protsess kestab seni, kuni testväljend on vale. Kui testväljend on vale, lõpeb silmus.
Testi avaldise kohta lisateabe saamiseks (kui testi avaldise väärtus on tõene ja väär), vaadake suhtelisi ja loogilisi operaatoreid.
silmuse vooskeemi jaoks
Näide 1: silmuse jaoks
// Print numbers from 1 to 10 #include int main() ( int i; for (i = 1; i < 11; ++i) ( printf("%d ", i); ) return 0; )
Väljund
1 2 3 4 5 6 7 8 9 10
- i lähtestatakse väärtusele 1.
i < 11
Hinnatakse testi ekspressiooni . Kuna 1 on väiksem kui 11, siisfor
täidetakse silmuse keha . See prindib ekraanile 1 (i väärtuse).- Värskendusavaldus
++i
täidetakse. Nüüd on i väärtuseks 2. Jällegi hinnatakse testväljend tõeseks ja käivitatakse for for loop. See prindib ekraanile 2 (i väärtus). - Jällegi
++i
täidetakse värskenduse lause ja hinnatakse testi avaldisti < 11
. See protsess kestab seni, kuni minust saab 11. - Kui i saab 11, on i <11 vale ja
for
silmus lõpeb.
Näide 2: silmuse jaoks
// 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; )
Väljund
Sisestage positiivne täisarv: 10 Sum = 55
Kasutaja sisestatud väärtus salvestatakse muutujasse num. Oletame, et kasutaja sisestas 10.
Loend initsialiseeritakse 1-ni ja hinnatakse testi ekspressiooni. Kuna testväljend count<=num
(1 väiksem või võrdne 10) on tõene, for
käivitatakse tsükli keha ja summa väärtus võrdub 1-ga.
Seejärel ++count
käivitatakse värskenduslause ja nende arv on võrdne 2. Jällegi hinnatakse testavaldist. Kuna ka 2 on väiksem kui 10, hinnatakse testväljend tõeseks ja for
täidetakse tsükli keha . Nüüd on summa võrdne 3-ga.
See protsess jätkub ja summa arvutatakse seni, kuni arv jõuab 11-ni.
Kui loend on 11, hinnatakse testavaldise väärtuseks 0 (vale) ja silmus lõpeb.
Seejärel sum
prinditakse ekraanile väärtus.
Tutvume while
loopi ja do… while
loopiga järgmises õpetuses.