Silmukat C:ssä: For, While, Do While silmukka lausekkeet [esimerkkejä]
Mikä on Loop C:ssä?
C:n lausekkeiden silmukka suorita lausesarja monta kertaa, kunnes ilmoitetusta ehdosta tulee epätosi. C:n silmukka koostuu kahdesta osasta, silmukan rungosta ja ohjauslauseesta. Ohjauskäsky on yhdistelmä joitain ehtoja, jotka ohjaavat silmukan rungon suorittamaan, kunnes määritetystä ehdosta tulee epätosi. C-silmukan tarkoitus on toistaa sama koodi useita kertoja.
Silmukoiden tyypit C:ssä
Riippuen ohjauskäskyn sijainnista ohjelmassa, silmukkakäsky C:ssä luokitellaan kahteen tyyppiin:
1. Sisääntuloohjattu silmukka
2. Poistu ohjatusta silmukasta
Vuonna sisäänkäynnin ohjaussilmukka C:ssä, ehto tarkistetaan ennen silmukan rungon suorittamista. Sitä kutsutaan myös esitarkastussilmukaksi.
Vuonna poistu ohjatusta silmukasta, ehto tarkistetaan silmukan rungon suorittamisen jälkeen. Sitä kutsutaan myös jälkitarkastussilmukaksi.
Ohjausehtojen on oltava hyvin määriteltyjä ja määriteltyjä, muuten silmukka suoritetaan äärettömän monta kertaa. Silmukkaa, joka ei pysähdy suorittamaan ja prosessoi lausekkeet monta kertaa, kutsutaan an ääretön silmukka. Ääretöntä silmukkaa kutsutaan myös "Endless silmukka.” Seuraavassa on joitain äärettömän silmukan ominaisuuksia:
1. Lopetusehtoa ei ole määritetty.
2. Määritetyt ehdot eivät koskaan täyty.
Määritetty ehto määrittää, suoritetaanko silmukan runko vai ei.
"C"-ohjelmointikieli tarjoaa meille kolmenlaisia silmukkarakenteita:
1. While-silmukka
2. Do-while-silmukka
3. 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, sitten ehto testaa ja vertaa laskuria kiinteään arvoon jokaisen iteraation jälkeen, pysäyttäen for-silmukan, kun false palautetaan. |
Vaikka silmukka C
A while-silmukka on yksinkertaisin silmukkarakenne. Vaikka silmukkasyntaksi 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.
- Olemme alustaneet muuttujan nimeltä num arvolla 1. Tulostamme 1:stä 10:een, joten muuttuja alustetaan arvolla 1. Jos haluat tulostaa 0:sta, anna arvo 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 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.
- 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 Boolen lauseke, joka testaa ja vertaa laskuria kiinteään arvoon jokaisen iteraation jälkeen ja pysäyttää for-silmukan, kun false palautetaan.
- 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.
- Olemme julistaneet a muuttuja int-tietotyyppiä arvojen tallentamiseen.
- 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äisyys voidaan tehdä mille tahansa tasolle asti. Sisäkkäiset silmukat tulee sisentää riittävästi, jotta koodi on luettavissa. Joissakin C-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.
Katkolause C
Break-lausetta käytetään pääasiassa vaihtaa lausunto. Se on hyödyllinen myös silmukan välittömään pysäyttämiseen.
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 esitesti vaaditaan, käytä hetken aikaa tai silmukkaa.
- Jos jälkitestaus vaaditaan, käytä do-while-silmukkaa.
Yhteenveto
- Määritä silmukka C:ssä: Silmukka on yksi tärkeimmistä käsitteistä missä tahansa Ohjelmointikieli. C-kielen silmukat toteutetaan ehdollisten lausekkeiden avulla.
- C:n silmukan ohjauskäskyjen lohko suoritetaan useita kertoja, kunnes ehdosta tulee epätosi.
- C-ohjelmoinnin silmukoita on kahta tyyppiä: sisääntuloohjattuja ja poistumisohjattuja.
- Listaa eri silmukkaohjauskäskyt C:ssä: C-ohjelmointi tarjoaa meille 1) ja 2) do-while ja 3) silmukan ohjausohjeet.
- For and while -silmukan C-ohjelmointi ovat sisääntuloohjattuja silmukoita C-kielellä.
- Do-while on poistumisohjaussilmukka C:ssä.