Ohjelmoinnin silmukat sallivat käskyjen suorittamisen useita kertoja ehdon perusteella. Javassa on kolmen tyyppisiä silmukoita, jotka selitetään alla:
1. silmukalle
For-silmukkaa käytetään, kun tiedämme iteraatioiden lukumäärän (tiedämme kuinka monta kertaa haluamme toistaa tehtävän). For-lause sisältää alustusehdon ja lisäyksen/vähennyksen yhdellä rivillä.
Esimerkki: Alla oleva Java-ohjelma esittelee for-silmukan, joka tulostaa numerot 0-10 yhdelle riville.
Java
// Java program to demonstrates the working of for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 10; i++) { System.out.print(i + ' '); } } }
Lähtö
0 1 2 3 4 5 6 7 8 9 10
Syntaksi:
for (alustus; ehto; lisäys/vähennys) {
// Suoritettava koodi
}
Alla oleva kuva esittää for-silmukan vuokaavion:
For -silmukan vuokaavio- Alustusehto : Tässä alustetaan käytössä oleva muuttuja. Se merkitsee for-silmukan alkua. Jo ilmoitettua muuttujaa voidaan käyttää tai muuttuja voidaan ilmoittaa vain paikallissilmukaksi.
- Testausolosuhteet: Sitä käytetään silmukan poistumisehdon testaamiseen. Sen on palautettava looginen arvo. Se on myös Entry Control Loop, koska ehto tarkistetaan ennen silmukkakäskyjen suorittamista.
- Lausunnon toteutus : Kun ehto on arvioitu todeksi, silmukan rungon lauseet suoritetaan.
- Lisäys/vähennys : Sitä käytetään muuttujan päivittämiseen seuraavaa iteraatiota varten.
- Silmukan päättäminen : Kun ehdosta tulee epätosi, silmukka päättyy ja merkitsee sen elinkaaren loppua.
Huom : For-silmukalla on toinen muoto, joka tunnetaan nimellä Parannettu silmukalle tai (jokaiselle silmukalle).
jaettu merkkijonolla java
Enhanced for loop (jokaiselle)
Tätä silmukkaa käytetään taulukoiden tai kokoelmien iterointiin.
Esimerkki : Alla oleva Java-ohjelma esittelee Enhanced for -silmukan (jokaiselle silmukalle), joka toistaa taulukon ja tulostaa nimiä.
Java// Java program to demonstrate // the working of for each loop import java.io.*; class Geeks { public static void main(String[] args) { String[] names = { 'Sweta' 'Gudly' 'Amiya' }; for (String name : names) { System.out.println('Name: ' + name); } } }
Lähtö
Name: Sweta Name: Gudly Name: Amiya
Syntaksi:
for (dataType-muuttuja : arrayOrCollection) {
// Suoritettava koodi
}
2. kun Silmukka
While-silmukkaa käytetään, kun haluamme tarkistaa ehdon ennen silmukan rungon suorittamista.
Esimerkki: Alla oleva Java-ohjelma esittelee while-silmukan, joka tulostaa numerot 0-10 yhdelle riville.
Java// Java program to demonstrates // the working of while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; while (i <= 10) { System.out.print(i + ' '); i++; } } }
Lähtö
0 1 2 3 4 5 6 7 8 9 10
Syntaksi:
while (ehto) {
// Suoritettava koodi
}
Alla oleva kuva havainnollistaa while-silmukan vuokaaviota:
mycricketlive
Vuokaavio while-silmukasta- While-silmukka alkaa Boolen ehdon tarkistuksella. Jos se arvioidaan tosiksi, silmukan runkolauseet suoritetaan, muuten suoritetaan silmukkaa seuraava lause. Tästä syystä sitä kutsutaan myös Entry-ohjaussilmukaksi
- Kun ehto on arvioitu todeksi, silmukan rungon lauseet suoritetaan. Yleensä käskyt sisältävät päivitysarvon käsiteltävälle muuttujalle seuraavaa iteraatiota varten.
- Kun ehdosta tulee epätosi, silmukka päättyy, mikä merkitsee sen elinkaaren loppua.
3. do-while Loop
Do-while-silmukka varmistaa, että koodilohko suoritetaan ainakin kerran ennen kunnon tarkistamista.
Esimerkki : Alla oleva Java-ohjelma esittelee do-while-silmukan, joka tulostaa numerot 0-10 yhdelle riville.
Java// Java program to demonstrates // the working of do-while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; do { System.out.print(i + ' '); i++; } while (i <= 10); } }
Lähtö
0 1 2 3 4 5 6 7 8 9 10
Syntaksi:
do {
// Suoritettava koodi
} while (ehto);
Alla oleva kuva esittää do-while-silmukan vuokaavion:
Vuokaavio do-while-silmukasta- do while -silmukka alkaa lauseen suorittamisesta. Mitään kuntoa ei tarkisteta ensimmäistä kertaa.
- Lausuntojen suorittamisen ja muuttujan arvon päivityksen jälkeen ehdon arvo tarkistetaan tosi tai epätosi. Jos se arvioidaan todeksi, seuraava silmukan iteraatio alkaa.
- Kun ehdosta tulee epätosi, silmukka päättyy, mikä merkitsee sen elinkaaren loppua.
- On tärkeää huomata, että do-while-silmukka suorittaa käskynsä vähintään kerran ennen kuin mikä tahansa ehto tarkistetaan ja on siksi esimerkki poistumisohjaussilmukasta.
Yleisimmät silmukan virheet ja niiden välttäminen
Jos silmukoita ei käytetä oikein, ne voivat aiheuttaa sudenkuoppia ja virheitä, jotka vaikuttavat koodin suorituskyvyn luettavuuteen ja toimivuuteen. Alla on joitain yleisiä silmukoiden sudenkuoppia:
1. Infinite Loops
Tämä on yksi yleisimmistä virheistä kaikenlaisen silmukan toteutuksessa on se, että se ei ehkä koskaan poistu, eli silmukka toimii äärettömän ajan. Tämä tapahtuu, kun tila epäonnistuu jostain syystä.
Infinite Loops -tyypit:
- ääretön Loopille
- ääretön, kun taas Loop
Esimerkki: Tässä molemmat esimerkit osoittavat äärettömät silmukat.
java-yhteysInfinite For Loop
// Java program to demonstrate // the infinite for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i--) { System.out.println( 'This loop will run forever'); } } }
Infinite While Loop // Java Program to demonstrate // the infinite while loop import java.io.*; class Geeks { public static void main(String[] args) { while(true) { System.out.println( 'Basic example of infinte loop'); } } }
Lähtö: Kun suoritat molemmat yllä olevat koodit, saat TLE (Time Limit Exceeded) -virheen.
2. Yksittäiset virheet
Off-by-One -virheet aiheutuvat, kun silmukka suoritetaan yhden tai yhden harvemmin kuin halusit. Se tapahtuu periaatteessa, kun silmukan ehtoa ei ole asetettu oikein.
Esimerkki : Alla oleva Java-ohjelma osoittaa Off-by-One Error -virheen, jossa silmukka suoritetaan 6 kertaa ja odotimme sen ajavan 5 kertaa.
Java// Java Program to demonstrates Off-by-One Errors import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 5; i++) { System.out.print(i + ' '); } } }
3. Silmukan sisällä olevien silmukkamuuttujien muokkaaminen
Kun muutamme silmukan ehtoa (kuten i) silmukan sisällä, se voi saada silmukan ohittamaan tietyt iteraatiot tai käyttäytymään tavalla, jota emme odottaneet. Tämä voi johtaa virheisiin tai odottamattomaan toimintaan.
Esimerkki : Alla oleva Java-ohjelma näyttää silmukan sisällä olevan silmukkamuuttujan muokkaamisen, mikä saa silmukan ohittamaan tietyt iteraatiot ja käyttäytymään odottamattomasti.
Java// Java program demonstrates // modification in i variable import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i == 2) { // Modifies the loop variable and skips // the next iteration i++; } System.out.println(i); } } }
4. Tyhjä silmukkarunko
Tyhjä silmukan runko syntyy, kun silmukka kirjoitetaan iteroitavaksi, mutta se ei suorita mitään toimintoja silmukan sisällä. Silmukan suorittaminen ilman hyödyllisiä toimintoja sen sisällä voi olla hämmentävää.
Esimerkki: Alla oleva Java-ohjelma esittelee tyhjän silmukan rungon.
Java// Java program to demonstrates Empty loop body import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // Empty body no operations } } }
Tätä varten ei luoda tulosta, koska silmukan runko on tyhjä.
Yhteenvetotaulukko
Silmukan tyyppi | Milloin käyttää | Kuntotarkistus | Toteutetaanko vähintään kerran? |
|---|---|---|---|
silmukalle | Kun haluat tarkat iteraatiot | Ennen silmukan runkoa Sitä kutsutaan sisääntuloohjatuksi. | ei |
kun silmukka | Kun tarvitset kuntotarkastusta ensin. | Ennen silmukan runkoa Sitä kutsutaan sisääntuloohjatuksi. java kääntää merkkijonon | ei |
do-while -silmukka | Kun pitää juosta ainakin kerran | After loop body Sitä kutsutaan Exit-controllediksi. | kyllä |
jokaiselle silmukalle | Kun käsittelet kaikki kokoelmaesineet | Sisäisesti hoidettu | ei |
Aiheeseen liittyvät viestit:
- silmukalle
- kun silmukka
- do-while -silmukka