Tässä artikkelissa käsitellään eroja "silmukan" ja "do-time" -silmukan välillä.
Vertailukaavio
Vertailun perusteet | sillä aikaa | tehdä, kun |
---|---|---|
Yleinen lomake | kun taas (ehto) { lausumat; // silmukan runko } | tehdä{ . lausumat; // silmukan runko. . } kun (ehto); |
Controlling Condition | "Silmukassa" ohjaussäätö näkyy silmukan alussa. | Silmukan "do-time" -silmukassa ohjausolosuhteet näkyvät silmukan lopussa. |
toistojen | Iteraatioita ei tapahdu, jos tilanne ensimmäisessä iteroinnissa näyttää väärältä. | Iterointi tapahtuu ainakin kerran, vaikka ehto olisi väärä ensimmäisessä iteroinnissa. |
Määritelmä, kun Loop
Silmukka on kaikkein perustavin silmukka, joka on saatavilla C ++: ssa ja Javaissa. Hetkisen silmukan toiminta on samanlainen sekä C ++: ssa että Java: ssa. Silmukan yleinen muoto on:
kun (ehto) {lausunnot; // silmukan runko}
Kun silmukka ensin tarkistaa tilan, ja jos ehto on totta, se iteroi silmukkaa, kunnes ehto on väärä. Olosuhde silmukassa voi olla mikä tahansa boolean ilmaisu. Kun lauseke palauttaa ei-nolla-arvon, ehto on ”tosi”, ja jos lauseke palauttaa nolla-arvon, ehto muuttuu ”vääräksi”. Jos ehto muuttuu totta, silmukka iteroituu itsestään, ja jos ehto muuttuu vääräksi, ohjaus siirtyy koodin seuraavaan riviin, jota seuraa silmukka.
Silmukan lausunnot tai runko voivat olla joko tyhjä lausunto tai yksittäinen lausunto tai lauseiden lohko.
Keskustellaan jonkin hetken silmukan toiminnasta. Alla olevassa esimerkissä koodi tulostaa 1 - 10.
// esimerkki on Java. luokka, kun {public static void main (args []) {int n = 0; kun (n <= 10) {n ++; system.out.println ("n =" + n); }}} // lähtö n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Tässä 'n': n alkuarvo on 0, joka muuttaa tilan kun silmukka on totta. Ohjaus siirtyy sitten silmukan runkoon ja 'n': n arvoa kasvatetaan ensimmäisen lausekkeen mukaan jonkin ajan silmukan rungossa. Sitten 'n' -arvo tulostetaan ja ohjain palaa taas hetken silmukan tilaan, nyt 'n' -arvo on 1, joka taas täyttää tilan, ja silmukan runko suoritetaan uudelleen.
Tämä jatkuu, kunnes ehto on totta, kun tilanne muuttuu vääräksi, kun silmukka lopetetaan. Silmukan tapaan myös silmukka tarkastaa ensin tilan ja suorittaa silmukan rungon.
Määritelmä do-time Loop
Samoin kuin silmukassa, jos ohjaustila muuttuu vääräksi vain ensimmäisessä iteroinnissa, silloin silmukan runkoa ei suoriteta lainkaan. Mutta silmukka on hieman erilainen kuin silmukka. Tehtävä-silmukka suorittaa silmukan rungon ainakin kerran, vaikka ehto olisikin väärä ensimmäisessä yrityksessä.
Tehtävän yleinen muoto on seuraava.
tee {. lausunnot // silmukan runko. . } kun (ehto);
Tehtäväsilmukassa silmukan runko esiintyy ennen ohjaustilaa, ja ehdollinen lausunto on silmukan alareunassa. Kuten silmukassa, tässäkin silmukan runko voi olla tyhjä, koska sekä C ++ että Java sallivat nollaraportit tai, voi olla vain yksi lausunto tai lauseen lohko. Tila tässä on myös boolean lauseke, joka on totta kaikille ei-nolla-arvoille.
Tehtävässä-silmukassa ohjaus saavuttaa ensin lausunnon do-time-silmukan rungossa. Laitoksen lausunnot suoritetaan ensin ja sitten ohjain saavuttaa silmukan kunnon osan. Ehto tarkistetaan ja, jos se on totta, silmukka iteroidaan uudelleen, ja jos ehto on väärä, ohjaus jatkuu seuraavaan riviin heti silmukan jälkeen.
Ymmärrämme sen toteuttamalla yllä oleva esimerkki.
// esimerkki on Java. luokka, kun {public static void main (args []) {int n = 1; tee {system.out.println ("n =" + n); n ++; } kun (n <10)}} // lähtö n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Tällöin arvo n = 1, joka ohjaa uudelleen silmukan runkoon, n: n arvo tulostetaan ja sen arvo kasvaa. Sitten ohjaus jatkuu do-time-silmukan tilaan; ehto tarkistetaan, mikä on totta n = 1: lle, joten silmukka on iteroitunut uudelleen ja jatkuu kunnes ehto muuttuu vääräksi.
Keskeiset erot toistensa ja käyrän välillä
- Kun silmukka tarkistaa kunnon silmukan alussa ja jos ehto täyttyy, silmukan sisällä oleva ilmoitus suoritetaan. Do-time -silmukassa ehto tarkistetaan sen jälkeen, kun kaikki lausekkeet suoritetaan silmukan rungossa.
- Jos tila jonkin aikaa silmukassa on väärä, ei yksittäistä silmukan sisäistä lausuntoa suoriteta, ja jos "do-time" -silmukan ehto on väärä, myös silmukan runko suoritetaan ainakin kerran, kun ehto testataan.
johtopäätös:
Sekä, että silmukan ollessa-do silmukka ovat iterointilausunto, jos haluamme ensin, ehto on tarkistettava, ja sitten silmukan sisällä olevat lauseet on suoritettava, kun taas silmukkaa käytetään. Jos haluat testata päättymisolosuhteita silmukan lopussa, käytetään silmukkaa.