C-kielen silmukat: For, While, Do Whileping Lausunnot [Esimerkkejä]
⚡ Älykäs yhteenveto
C-kielen silmukat toistavat lauselohkoa, kunnes ohjausehto muuttuu epätosiksi, ja kieli tarjoaa kolme konstruktiota – while-silmukan, do-while-silmukan ja for-silmukan – aloitus- ja lopetuskontrolloitua toistoa varten.

Mikä on Loop C:ssä?
Vessaping C-kielen lauseet suorittavat lausekkeiden sarjaa useita kertoja, kunnes annettu ehto muuttuu epätosi. C-kielen silmukka koostuu kahdesta osasta: silmukan rungosta ja ohjauslauseesta. Ohjauslauseke on yhdistelmä ehtoja, jotka ohjaavat silmukan rungon suorittamaan funktiota, kunnes annettu ehto muuttuu epätosi. C-kielen silmukan tarkoituksena on toistaa samaa koodia useita kertoja.
Silmukoiden tyypit C:ssä
Riippuen ohjauslausekkeen sijainnista ohjelmassa, katsoping C-kielen lausekkeet luokitellaan kahteen tyyppiin:
- Sisäänpääsyä ohjattu silmukka
- Poistu ohjatusta silmukasta
C-kielen aloitusohjaussilmukassa ehto tarkistetaan ennen silmukan rungon suorittamista. Sitä kutsutaan myös esitarkistussilmukaksi.
Poistumisohjatussa silmukassa ehto tarkistetaan silmukan rungon suorittamisen jälkeen. Sitä kutsutaan myös jälkitarkistussilmukaksi.
Näytesilmukka
Ohjausehdot on määriteltävä ja spesifioitava hyvin, muuten silmukka suoritetaan äärettömän monta kertaa. Silmukkaa, joka ei pysähdy suorittamaan ja käsittelee lauseita niin monta kertaa, kutsutaan äärettömäksi silmukaksi. Ääretöntä silmukkaa kutsutaan myös "loputtomaksi silmukaksi". Seuraavassa on joitakin äärettömän silmukan ominaisuuksia:
- Irtisanomisehtoa ei ole määritelty.
- Määritellyt ehdot eivät koskaan täyty.
Määritetty ehto määrittää, suoritetaanko silmukan runko vai ei.
"C"-ohjelmointikieli tarjoaa meille kolmenlaisia silmukkarakenteita:
- While-silmukka
- Tee-kunne-silmukka
- For-silmukka
| Sr. | Silmukkatyyppi | Tuotetiedot |
|---|---|---|
| 1. | Vaikka silmukka | While-silmukassa ehto arvioidaan ennen silmukan rungon käsittelyä. Jos ehto on tosi silloin ja vain silloin silmukan runko suoritetaan. |
| 2. | Do-While Loop | Do…while-silmukassa ehto suoritetaan aina silmukan rungon jälkeen. Sitä kutsutaan myös poistumisohjatuksi silmukaksi. |
| 3. | Loopille | For-silmukassa alkuarvo suoritetaan vain kerran, minkä jälkeen ehto testaa ja vertaa laskuria kiinteään arvoon jokaisen iteraation jälkeen, stopping for-silmukka, kun palautetaan arvon false arvo. |
Vaikka silmukka C
While-silmukka on suoraviivaisin loo-toiminto.ping rakenne. Silmukan syntaksi C-ohjelmointikielessä on seuraava:
While-silmukan syntaksi C:ssä
while (condition) {
statements;
}
Se on sisäänkäyntiohjattu silmukka. While-silmukassa ehto arvioidaan ennen silmukan rungon käsittelyä. Jos ehto on tosi silloin ja vain silloin silmukan runko suoritetaan. Kun silmukan runko on suoritettu, ohjaus palaa takaisin alkuun, ja ehto tarkistetaan, onko se tosi, sama prosessi suoritetaan, kunnes ehdosta tulee epätosi. Kun ehdosta tulee epätosi, ohjaus menee pois silmukasta.
Silmukasta poistuttuaan ohjaus siirtyy välittömästi silmukan jälkeen oleviin lauseisiin. Silmukan runko voi sisältää useamman kuin yhden lauseen. Jos se sisältää vain yhden lauseen, kiharat aaltosulut eivät ole pakollisia. On kuitenkin hyvä käytäntö käyttää kiharat housunkannattimet, vaikka kehossa olisi vain yksi lause.
Jos ehto ei ole tosi, while-silmukassa silmukan runkoa ei suoriteta, ei edes kerran. Se on erilainen do while -silmukassa, jonka näemme pian.
Seuraava ohjelma havainnollistaa while-silmukkaa C-ohjelmointiesimerkissä:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable while(num<=10) //while loop with condition { printf("%d\n",num); num++; //incrementing operation } return 0; }
lähtö:
1 2 3 4 5 6 7 8 9 10
Yllä oleva ohjelma havainnollistaa while-silmukan käyttöä. Yllä olevassa ohjelmassa olemme tulostaneet numerosarjoja 1-10 käyttämällä while-silmukkaa.
Silmukka C-ohjelmoinnissa
- Olemme alustaneet muuttuja kutsutaan num-muuttujaksi, jonka arvo on 1. Tulostamme luvut 1:stä 10:een, joten muuttuja alustetaan arvolla 1. Jos haluat tulostaa luvusta 0, aseta arvoksi 0 alustuksen aikana.
- Jossain vaiheessa olemme antaneet ehdon (num<=10), mikä tarkoittaa, että silmukka suorittaa rungon, kunnes numeron arvosta tulee 10. Sen jälkeen silmukka päättyy ja ohjaus putoaa silmukan ulkopuolelle.
- Silmukan rungossa meillä on tulostustoiminto numeromme tulostamiseksi ja lisäystoiminto silmukan arvon kasvattamiseksi. Num:n alkuarvo on 1, suorituksen jälkeen siitä tulee 2 ja seuraavan suorituksen aikana 3. Prosessi jatkuu, kunnes arvoksi tulee 10 ja sitten se tulostaa sarjan konsolille ja päättää silmukan. .
'\n'-merkkiä käytetään muotoilutarkoituksiin, mikä tarkoittaa, että arvo tulostetaan uudelle riville.
Do-While -silmukka C:ssä
Do…while-silmukka C:ssä on samanlainen kuin while-silmukka, paitsi että ehto suoritetaan aina silmukan rungon jälkeen. Sitä kutsutaan myös poistumisohjatuksi silmukaksi.
Do while -silmukan syntaksi C-ohjelmointikielessä on seuraava:
Do-While-silmukan syntaksi C:ssä
do { statements } while (expression);
Kuten näimme while-silmukassa, runko suoritetaan jos ja vain jos ehto on tosi. Joissakin tapauksissa meidän on suoritettava silmukan runko ainakin kerran, vaikka ehto olisi epätosi. Tämän tyyppinen toiminta voidaan saavuttaa käyttämällä do-while-silmukkaa.
Do-while-silmukassa silmukan runko suoritetaan aina vähintään kerran. Kun ruumis on suoritettu, se tarkistaa kunnon. Jos ehto on tosi, se suorittaa jälleen silmukan rungon, muuten ohjaus siirtyy pois silmukasta.
Samoin kuin while-silmukassa, kun ohjaus poistuu silmukasta, käskyt ovat välittömästi silmukan suorittamisen jälkeen.
Kriittinen ero while- ja do-while-silmukan välillä on, että while-silmukassa while kirjoitetaan alkuun. Do-while-silmukassa while-ehto kirjoitetaan loppuun ja päättyy puolipisteeseen (;)
Seuraava C:n silmukkaohjelma havainnollistaa do-while-silmukan toimintaa:
Alla on do-while-silmukka C-esimerkissä numeron 2 taulukon tulostamiseksi:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable do //do-while loop { printf("%d\n",2*num); num++; //incrementing operation }while(num<=10); return 0; }
lähtö:
2 4 6 8 10 12 14 16 18 20
Yllä olevassa esimerkissä olemme tulostaneet kertotaulukon 2 käyttämällä do-while-silmukkaa. Katsotaan kuinka ohjelma pystyi tulostamaan sarjan.
Do-While-silmukka C-ohjelmoinnissa
- Ensin olemme alustaneet muuttujan 'num', jonka arvo on 1. Sitten olemme kirjoittaneet do-while -silmukan.
- Silmukassa meillä on tulostustoiminto, joka tulostaa sarjan kertomalla numeron arvon kahdella.
- Jokaisen lisäyksen jälkeen num-arvo kasvaa yhdellä, ja se tulostetaan näytölle.
- Aluksi numeron arvo on 1. Silmukan rungossa tulostustoiminto suoritetaan seuraavasti: 2*num missä num=1, sitten 2*1=2, joten arvo kaksi tulostetaan. Tämä jatkuu, kunnes numeron arvosta tulee 10. Tämän jälkeen silmukka päättyy ja välittömästi silmukan jälkeen oleva käsky suoritetaan. Palauta tässä tapauksessa 0.
Silmukalle C:ssä
For-silmukka on tehokkaampi silmukkarakenne C-ohjelmoinnissa. For-silmukan syntaksin yleinen rakenne C:ssä on seuraava:
For Loopin syntaksi C:ssä
for (initial value; condition; incrementation or decrementation ) { statements; }
- For-silmukan alkuarvo suoritetaan vain kerran.
- Ehto on looginen lauseke, joka testaa ja vertaa laskuria kiinteään arvoon jokaisen iteraation jälkeen, stopping for-silmukka, kun palautetaan arvon false arvo.
- Lisäys/vähennys lisää (tai pienentää) laskuria asetetun arvon verran.
Seuraava ohjelma havainnollistaa for-silmukkaa C-ohjelmointiesimerkissä:
#include<stdio.h> int main() { int number; for(number=1;number<=10;number++) //for loop to print 1-10 numbers { printf("%d\n",number); //to print the number } return 0; }
lähtö:
1 2 3 4 5 6 7 8 9 10
Yllä oleva ohjelma tulostaa numerosarjan 1-10 käyttämällä for-silmukkaa.
Loop in C -ohjelmointiin
- Olemme määritelleet int-tietotyypin muuttujan arvojen tallentamista varten.
- For-silmukassa alustusosassa olemme antaneet muuttujan numerolle arvon 1. Ehto-osassa olemme määrittäneet ehtomme ja sitten lisäysosan.
- Silmukan rungossa meillä on tulostustoiminto, joka tulostaa numerot konsolin uudelle riville. Meillä on arvo yksi tallennettu numeroon, ensimmäisen iteraation jälkeen arvoa kasvatetaan ja siitä tulee 2. Nyt muuttujan numerolla on arvo 2. Ehto tarkistetaan uudelleen ja koska ehto on tosi, silmukka suoritetaan, ja se tulostaa kaksi näytölle. Tämä silmukka jatkuu, kunnes muuttujan arvoksi tulee 10. Sen jälkeen silmukka päättyy ja näytölle tulostetaan sarja 1-10.
C:ssä for-silmukassa voi olla useita lausekkeita, jotka on erotettu pilkuilla kussakin osassa.
Esimerkiksi:
for (x = 0, y = num; x < y; i++, y--) { statements; }
Voimme myös ohittaa alkuarvon lausekkeen, ehdon ja/tai lisäyksen lisäämällä puolipisteen.
Esimerkiksi:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
Huomaa, että silmukat voidaan myös upottaa sisäkkäisiin kohteisiin, joissa on ulkosilmukka ja sisäsilmukka. Jokaisella ulomman silmukan iteraatiolla sisäsilmukka toistaa koko syklinsä.
Harkitse seuraavaa esimerkkiä, jossa on useita ehtoja for-silmukassa, joka käyttää sisäkkäistä silmukkaa C-ohjelmoinnissa kertotaulun tulostamiseen:
#include <stdio.h> int main() { int i, j; int table = 2; int max = 5; for (i = 1; i <= table; i++) { // outer loop for (j = 0; j <= max; j++) { // inner loop printf("%d x %d = %d\n", i, j, i*j); } printf("\n"); /* blank line between tables */ }}
lähtö:
1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
For-silmukoiden sisäkkäisyyttä voidaan tehdä mille tahansa tasolle. Sisäkkäisten silmukoiden tulisi olla riittävästi sisennettyjä, jotta koodi on luettavissa. Joissakin C-kielen versioissa sisäkkäisyys on rajoitettu 15 silmukkaan, mutta jotkut tarjoavat enemmän.
Sisäkkäisiä silmukoita käytetään enimmäkseen taulukkosovelluksissa, jotka tulemme näkemään muissa opetusohjelmissa.
Kolmen silmukkatyypin lisäksi C tarjoaa kaksi lausetta, jotka muuttavat silmukan suoritustapaa sisältäpäin.
Katkolause C
Break-lausetta käytetään pääasiassa vaihtaa lausuntoSe on myös hyödyllinen välittömään pysäyttämiseenping silmukka.
Tarkastelemme seuraavaa ohjelmaa, joka ottaa käyttöön tauon, jolla poistutaan while-silmukasta:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
lähtö:
5 4
Jatka lausuntoa C
Kun haluat siirtyä seuraavaan iteraatioon, mutta pysyä silmukassa, käytä jatka-käskyä.
Esimerkiksi:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
lähtö:
6 4 3 2 1
Joten arvo 5 ohitetaan.
Mikä silmukka valita?
Silmukan valinta on aina vaikea tehtävä ohjelmoijalle, valitse silmuka seuraavasti:
- Analysoi ongelma ja tarkista, vaatiiko se esitestin vai testin jälkeistä silmukkaa.
- Jos esitestaus on tarpeen, käytä while- tai for-silmukkaa.
- Jos jälkitestaus vaaditaan, käytä do-while-silmukkaa.




