ero for: n ja while Loopin välillä

For: n ja while Loopin välilläC++: ssa ja Javassa, iterointilauseet silmukalle, kun taas silmukka ja do-while-silmukka mahdollistavat ohjeiden toistamisen, kunnes ehto on tosi ja päättyy heti, kun ehto muuttuu epätoseksi. Iterointilausekkeiden ehdot voidaan määritellä ennalta muotoon in For loop tai open-end kuten while loop.

on olemassa useita ” for ” silmukka muunnelmia C++ on hiljaista lisätä sen sovellettavuus, teho ja joustavuus. Esimerkiksi for-silmukan avulla voidaan käyttää useampaa kuin yhtä muuttujaa silmukan sisällä sen hallitsemiseksi, ja konvergointifunktion käyttö for-silmukan kanssa. Kääntäen, kun taas silmukka emme voi käyttää monia muunnelmia, että on käytettävä standardin syntaksi.

for-ja while-silmukoiden välillä on joitakin suuria eroja, jotka selitetään tarkemmin vertailukaavion avulla.

sisältö: For Loop Vs while Loop

  1. Vertailukaavio
  2. määritelmä
  3. keskeiset erot
  4. johtopäätös

Vertailukaavio

vertailupohja for while
Declaration for (initialization; condition; iteration) {
/ / body of ’ for ’ loop
}
while (condition) {
statements; // silmukan runko
}
muoto alustus, kuntotarkastus, iterointilauseke kirjoitetaan silmukan yläreunaan. vain alustus ja kuntotarkastus tehdään silmukan yläosassa.
käytä ” for ” – silmukkaa, jota käytetään vain silloin, kun iterointien lukumäärä oli jo tiedossa. ”while” – silmukkaa käytetään vain silloin, kun iteraatioiden lukumäärää ei tarkalleen tiedetä.
ehto jos ehtoa ei esitetä ” for ” – silmukassa, silmukka iteroi äärettömät ajat. jos ehtoa ei aseteta ”while” – silmukkaan, se aiheuttaa kokoamisvirheen.
alustus for-silmukassa tehtyä alustusta ei koskaan toisteta. while Loopissa jos alustus tehdään kuntotarkastuksen aikana, alustus tehdään joka kerta, kun silmukka iteroituu.
Iterointilauseke ” for ” – silmukassa iterointilauseke kirjoitetaan alkuun, joten suoritetaan vasta kun kaikki silmukan lausekkeet on suoritettu. ”while” – silmukassa iterointilauseke voidaan kirjoittaa missä tahansa silmukassa.

määritelmä silmukalle

Jaavassa on kaksi muotoa silmukoille. Ensimmäinen muoto on” perinteinen ”muoto ja toinen on” for-each ” – muoto.

syntaksi

perinteisen silmukkalauseen yleinen muoto.

for (initialization; condition; iteration){//body of for loop}
  • alustus: for Loopin määräävän muuttujan alustus suoritetaan vain kerran, silmukan ensimmäisen iteraation aikana. Tässä silmukkaohjausmuuttuja alustetaan, joskus jos silmukkamuuttujaa ei käytetä enää missään ohjelmassa ja sitä käytetään vain silmukan kontrollimuuttujana, se sekä julistetaan että alustetaan for-silmukassa.
  • ehto: for-silmukan ehto suoritetaan aina, kun silmukkaa iteroidaan.
  • inkrementti ja iteraatio: iterointilauseke on lauseke, joka kasvattaa tai pienentää silmukkaohjausmuuttujaa.

aina kun silmukka suoritetaan, sen alustusehto suoritetaan ensin; sen jälkeen kunto tarkistetaan. Jos ehto täyttyy, silmukan runko suoritetaan, suoritetaan iterointilauseke. Sitten taas, ehto tarkistetaan tietää, onko silmukka iteroituu edelleen tai päättyy.

Javassa alustuslauseeseen ja iterointilauseeseen voi sisältyä useampi lauseke. Jokainen lauseke erotetaan toisistaan pilkulla, Javassa pilkku on erotin, kun taas C++: ssa” pilkku ” on operaattori, jota voidaan käyttää missä tahansa kelvollisessa lausekkeessa.

for-each loop ja sen syntaksi

” for-each ” – muoto on parannettu for loop. Yleinen muoto for-jokainen silmukka on seuraava.

for(type iter_variable: collection) statement-block

tässä ”tyyppi” määrittää iteraatiomuuttujan tyypin, jota seuraa iteraatiomuuttuja. Iteraatiomuuttuja saa elementin keruumuuttujasta. Tyypin on oltava sama kuin kokoelma-muuttujaan tallennettujen elementtien tyyppi. For-kukin for-silmukan muoto automatisoi silmukan iteroinnin alusta loppuun käyttäen arvoja peräkkäisessä järjestyksessä.

esimerkki

on olemassa erilaisia keräyksiä, joita käytetään silmukoiden kanssa. Keskustellaan siitä array kuin kokoelma.

public class Main{ public static void main(String args) { int array={10, 20, 30, 40, 50, 60}; int add=0; for( int c: array) { System.out.println( "value in c " + c); add = add+c; } System.out.println("additon of array elements is " +add); }}// outputvalue in c 10value in c 20value in c 30value in c 40value in c 50value in c 60additon of array elements is 210

tässä ”c” on iteraatiomuuttuja; se saa arvot matriisista yksi kerrallaan, alimmasta indeksistä korkeimpaan indeksiin matriisissa. Tässä silmukka iteroituu, kunnes kaikki matriisin elementit tutkitaan. On mahdollista lopettaa silmukka välillä käyttämällä ”tauko”. Iteraatiomuuttujan muutos ei kuitenkaan vaikuta jonoon, sillä se on vain lukumuuttuja.

while-silmukan määritelmä

while-silmukka on perustavin C++: ssa ja Javassa saatavilla oleva silmukka. While-silmukan toiminta on samanlaista sekä C++: ssa että Javassa.

syntaksi

while-silmukan julistus on seuraava

while ( condition) {statements; //body of loop}

while-silmukka tarkistaa ensin ehdon ja suorittaa sitten lauseet, kunnes ehto silmukassa osoittautuu todeksi. While Loopin ehto voi olla mikä tahansa Boolen ilmaisu. Kun lauseke palauttaa minkä tahansa ei-nollan arvon, ehto on tosi, ja jos lauseke palauttaa nollan arvon, ehdosta tulee epätosi.

jos ehdosta tulee tosi, silmukka iteroituu itsestään, ja jos ehdosta tulee epätosi, niin kontrolli siirtyy koodin seuraavalle riville, jota seuraa välittömästi silmukka. Lauseet tai kehosilmukka voi olla joko tyhjä lauseke tai yksittäinen lauseke tai lauseiden lohko.

esimerkki

keskustellaan jonkin aikaa Loopin toiminnasta. Alla olevassa esimerkissä koodi tulostetaan 1-10.

//example is in Java.public class Main{ public static void main (String args) { int n=0; while(n<10) { n++; System.out.println("n=" +n); } }}//outputn=1n=2n=3n=4n=5n=6n=7n=8n=9n=10

tässä ” n ” alkuarvo on 0, mikä tekee while Loopin ehdosta totta. Tämän jälkeen kontrolli siirtyy while-silmukan kehoon ja ”n”: n arvoa korotetaan while-silmukan kehossa olevan ensimmäisen lausekkeen mukaisesti.

”n”: n arvo tulostetaan, sitten kontrolli palaa ehtoon hetken silmukassa, nyt ”n”: n arvo on 1, joka taas täyttää ehdon, ja silmukan runko suoritetaan uudelleen. Tämä jatkuu, kunnes ehto on totta, heti kun ehto muuttuu vääräksi, silmukka päättyy.

” for ”- silmukan tavoin ”while” – silmukka voi myös alustaa säätömuuttujan silmukan yläosassa eli kuntotarkastuksen aikana.

//for examplewhile((ch = getchar( ) ) != 'A'){System.out.println(" The input alphabet " +ch);}

tässä ohjausmuuttuja ” ch ” alustetaan, ja silmukan kunto todennetaan silmukan yläosassa.

Huomautus

voiko se olla for loop tai A while loop, jos silmukan rungossa on vain yksi lauseke, kiharasulkuja ei tässä tilassa tarvita.

keskeisimmät erot for and while loop

  1. in for loop, initialisointi, kunnontarkistus ja iterointimuuttujan lisäys tai säätö tehdään eksplisiittisesti vain silmukan syntaksissa. Sitä vastoin while-silmukassa voimme vain alustaa ja tarkistaa silmukan syntaksin kunnon.
  2. kun tiedämme, kuinka monta iteraatiota silmukan suorittamisessa on tapahduttava, käytämme silmukkaa. Toisaalta, jos emme ole tietoisia siitä, kuinka monta iteraatiota on tapahduttava silmukassa, käytämme while Loopia.
  3. jos et laita ehtolausetta silmukkaan, se johtaa silmukan äärettömään iteraatioon. Sen sijaan, jos et laita kunto lauseke while silmukka se johtaa kokoamisvirhe.
  4. for Loopin syntaksin alustuslause suoritetaan vain kerran silmukan alussa. Vastaavasti, jos kun silmukka sisältää alustuslauseen syntaksissaan, while-silmukan alustuslauseke suoritetaan joka kerta, kun silmukka iteroituu.
  5. for-silmukan iterointilauseke suoritetaan body for Loopin suoritusten jälkeen. Päinvastoin, iterointilauseke voidaan kirjoittaa missä tahansa while Loopin kehossa, joten voi olla olemassa joitakin lausekkeita, jotka suorittavat iterointilausekkeen suorittamisen jälkeen while Loopin kehossa.

johtopäätös

for-silmukka ja while-silmukka ovat molemmat iteraatiolauseita, mutta molemmilla on erillinen ominaisuutensa. For-silmukassa on kaikki sen julistus (alustus, kunto, iteraatio) silmukan rungon yläosassa. Epäedullisesti, vaikka silmukka vain alustus ja kunto on yläosassa kehon silmukan ja iterointi voidaan kirjoittaa missä tahansa kehon silmukan.