Java kilpos
Programavimo kilpos leidžia komandų rinkiniui paleisti kelis kartus, atsižvelgiant į sąlygą. „Java“ yra trijų tipų kilpos, kurios paaiškintos toliau:
1. už kilpą
Ciklas for naudojamas, kai žinome iteracijų skaičių (žinome, kiek kartų norime pakartoti užduotį). For teiginys apima inicijavimo sąlygą ir padidinimą / mažinimą vienoje eilutėje.
Pavyzdys: Žemiau pateikta Java programa demonstruoja for kilpą, kuri vienoje eilutėje spausdina skaičius nuo 0 iki 10.
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 + ' ' ); } } }
Išvestis
0 1 2 3 4 5 6 7 8 9 10
Sintaksė:
for (inicializacija; sąlyga; padidinimas / sumažinimas) {
// kodas, kurį reikia vykdyti
}
Toliau pateiktame paveikslėlyje pavaizduota for ciklo schema:
For -ciklo schema - Inicializacijos sąlyga : Čia inicijuojame naudojamą kintamąjį. Tai žymi for ciklo pradžią. Jau deklaruotas kintamasis gali būti naudojamas arba kintamasis gali būti deklaruotas tik vietinei kilpai.
- Bandymo sąlygos: Jis naudojamas kilpos išėjimo sąlygai patikrinti. Ji turi grąžinti loginę reikšmę. Tai taip pat yra įėjimo valdymo ciklas, nes sąlyga patikrinama prieš vykdant ciklo sakinius.
- Pareiškimo vykdymas : Kai sąlyga įvertinama kaip teisinga, ciklo korpuse esantys teiginiai vykdomi.
- Prieaugis/ Sumažėjimas : Jis naudojamas kintamajam atnaujinti kitai iteracijai.
- Kilpos nutraukimas : Kai sąlyga tampa klaidinga, ciklas baigiasi ir pažymi jo gyvavimo ciklo pabaigą.
Pastaba : Yra dar viena for ciklo forma, žinoma kaip Patobulinta kilpai arba (kiekvienai kilpai).
Patobulinta kilpai (kiekvienai)
Ši kilpa naudojama kartoti per masyvus ar kolekcijas.
Pavyzdys : Toliau pateiktoje „Java“ programoje demonstruojama „Enhanced for“ ciklas (kiekvienai ciklai), kad būtų galima kartoti masyvą ir spausdinti pavadinimus.
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 ); } } }
Išvestis
Name: Sweta Name: Gudly Name: Amiya
Sintaksė:
for (duomenų tipo kintamasis : arrayOrCollection) {
// kodas, kurį reikia vykdyti
}
2. o kilpa
Ciklas while naudojamas, kai norime patikrinti būseną prieš vykdydami ciklo korpusą.
Pavyzdys: Žemiau esančioje „Java“ programoje demonstruojama „o“ kilpa, kuri vienoje eilutėje spausdina skaičius nuo 0 iki 10.
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 ++ ; } } }
Išvestis
0 1 2 3 4 5 6 7 8 9 10
Sintaksė:
while (sąlyga) {
// kodas, kurį reikia vykdyti
}
Žemiau esančiame paveikslėlyje parodyta laiko ciklo schema:
Nors ciklo schema - Nors ciklas prasideda tikrinant Būlio sąlygą. Jei jis įvertintas kaip tiesa, ciklo korpuso teiginiai vykdomi, priešingu atveju vykdomas pirmasis po ciklo einantis sakinys. Dėl šios priežasties jis taip pat vadinamas įėjimo valdymo kilpa
- Kai sąlyga įvertinama kaip teisinga, ciklo korpuse esantys teiginiai vykdomi. Paprastai teiginiuose yra kintamojo, kuris apdorojamas kitai iteracijai, atnaujinimo reikšmė.
- Kai sąlyga tampa klaidinga, ciklas baigiasi, o tai žymi jos gyvavimo ciklo pabaigą.
3. do-while Loop
Ciklas „do-while“ užtikrina, kad kodo blokas būtų vykdomas bent kartą prieš patikrindami būklę.
Pavyzdys : Toliau pateikta „Java“ programa demonstruoja „do-while“ kilpą, kuri spausdina skaičius nuo 0 iki 10 vienoje eilutėje.
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 ); } }
Išvestis
0 1 2 3 4 5 6 7 8 9 10
Sintaksė:
daryti {
// kodas, kurį reikia vykdyti
} while (sąlyga);
Žemiau esančiame paveikslėlyje parodyta „do-while“ ciklo schema:
Ciklo do-while schema - do while ciklas prasideda nuo teiginio vykdymo. Pirmą kartą nėra jokios būklės tikrinimo.
- Atlikus teiginius ir atnaujinus kintamojo reikšmę, tikrinama, ar sąlyga yra teisinga ar klaidinga. Jei jis įvertintas kaip tiesa, prasideda kita ciklo iteracija.
- Kai sąlyga tampa klaidinga, ciklas baigiasi, o tai žymi jos gyvavimo ciklo pabaigą.
- Svarbu pažymėti, kad ciklas do-while savo teiginius įvykdys mažiausiai vieną kartą prieš patikrinant bet kokią sąlygą, todėl yra išėjimo valdymo ciklo pavyzdys.
Dažnos kilpos klaidos ir kaip jų išvengti
Jei kilpos naudojamos netinkamai, gali atsirasti spąstų ir klaidų, kurios turi įtakos kodo skaitomumui ir funkcionalumui. Žemiau pateikiamos kelios dažniausiai pasitaikančios kilpų klaidos:
1. Begalinės kilpos
Tai viena iš dažniausiai pasitaikančių klaidų diegiant bet kokį ciklą yra ta, kad jis gali niekada nepasitraukti, ty ciklas veikia begalinį laiką. Taip atsitinka, kai būklė dėl kokios nors priežasties nepavyksta.
Begalinių kilpų tipai:
- begalinis ciklas
- begalinis, o kilpa
Pavyzdys: Čia abu pavyzdžiai parodo begalines kilpas.
Infinite 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' ); } } }
Išvestis: Kai paleisite abu aukščiau nurodytus kodus, gausite TLE (viršytas laiko limitas) klaidą.
2. „Off-by-One“ klaidos
„Off-by-One“ klaidos atsiranda, kai ciklas paleidžiamas vieną kartą arba vieną kartą mažiau nei norėjote. Iš esmės tai atsitinka, kai ciklo sąlygos nėra tinkamai nustatytos.
Pavyzdys : Žemiau pateikta „Java“ programa demonstruoja „Off-by-One“ klaidą, kai ciklas paleidžiamas 6 kartus, o mes tikėjomės, kad jis bus paleistas 5 kartus.
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. Ciklo kintamųjų keitimas ciklo viduje
Kai pakeičiame ciklo sąlygas (kaip i) ciklo viduje, ciklas gali praleisti tam tikras iteracijas arba elgtis taip, kaip nesitikėjome. Tai gali sukelti klaidų arba netikėto elgesio.
Pavyzdys : Toliau pateikta Java programa demonstruoja ciklo kintamojo modifikavimą ciklo viduje, dėl kurio ciklas praleidžia tam tikras iteracijas ir elgiasi netikėtai.
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. Tuščias kilpos korpusas
Tuščias ciklo korpusas atsiranda, kai ciklas įrašomas iteruoti, bet neatlieka jokių operacijų ciklo viduje. Ciklo vykdymas be jokių naudingų operacijų joje gali būti painus.
Pavyzdys: Žemiau pateikta „Java“ programa demonstruoja „Empty Loop body“.
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 } } }
Tam nebus sukurta jokia išvestis, nes ciklo korpusas yra tuščias.
Suvestinė lentelė
| Kilpos tipas | Kada naudoti | Būklės tikrinimas | Vykdo bent kartą? |
|---|---|---|---|
| už kilpą | Kai norite tikslių iteracijų | Prieš kilpos korpusą Jis vadinamas įėjimo valdomu. | ne |
| o kilpa | Kai reikia, pirmiausia patikrinkite būklę. | Prieš kilpos korpusą Jis vadinamas įėjimo valdomu. | ne |
| do-while kilpa | Kai reikia bent kartą bėgti | After loop body Jis vadinamas Exit-controlled. | taip |
| už kiekvieną kilpą | Kai apdorojate visus kolekcijos elementus | Tvarkomas viduje | ne |
Susiję įrašai:
- už kilpą
- o kilpa
- do-while kilpa