A programozási ciklusok lehetővé teszik, hogy egy utasításkészlet többször futhasson egy feltétel alapján. A Java-ban háromféle hurok létezik, amelyeket alább ismertetünk:
1. for hurok
A for ciklust akkor használjuk, ha ismerjük az iterációk számát (tudjuk, hogy egy feladatot hányszor szeretnénk megismételni). A for utasítás egy sorban tartalmazza az inicializálási feltételt és a növelést/csökkentést.
Példa: Az alábbi Java program egy for ciklust mutat be, amely 0 és 10 közötti számokat ír ki egyetlen sorban.
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 + ' '); } } }
Kimenet
0 1 2 3 4 5 6 7 8 9 10
Szintaxis:
for (inicializálás; feltétel; növelés/csökkentés) {
// végrehajtandó kód
}
Az alábbi kép a for ciklus folyamatábráját mutatja be:
A for -loop folyamatábrája- Inicializálási feltétel : Itt inicializáljuk a használt változót. Ez jelzi a for ciklus kezdetét. Egy már deklarált változó használható, vagy egy változó csak helyi hurokba deklarálható.
- Tesztelési feltétel: A hurok kilépési feltételének tesztelésére szolgál. Logikai értéket kell visszaadnia. Ez egy Belépési vezérlőhurok is, mivel a feltételt a ciklusutasítások végrehajtása előtt ellenőrzik.
- Nyilatkozat végrehajtása : Ha a feltétel igazra lett értékelve, a ciklustörzsben lévő utasítások végrehajtásra kerülnek.
- Növekedés/csökkentés : A változó frissítésére szolgál a következő iterációhoz.
- Hurok lezárása : Amikor a feltétel hamissá válik, a ciklus véget ér, és ezzel az életciklusa végét jelzi.
Jegyzet : A for ciklusnak létezik egy másik formája is Továbbfejlesztett ciklushoz vagy (minden ciklushoz).
Diana Ankudinova
Továbbfejlesztett ciklushoz (mindegyikhez)
Ez a ciklus a tömbök vagy gyűjtemények közötti iterációra szolgál.
Példa : Az alábbi Java program egy Enhanced for ciklust mutat be (minden ciklushoz), amely egy tömbön keresztül iterál és neveket nyomtat.
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); } } }
Kimenet
Name: Sweta Name: Gudly Name: Amiya
Szintaxis:
for (dataType változó : arrayOrCollection) {
// végrehajtandó kód
}
2. míg Hurok
A while ciklust akkor használjuk, ha ellenőrizni akarjuk a feltételt a ciklustörzs végrehajtása előtt.
Példa: Az alábbi Java program egy while ciklust mutat be, amely 0 és 10 közötti számokat ír ki egyetlen sorban.
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++; } } }
Kimenet
0 1 2 3 4 5 6 7 8 9 10
Szintaxis:
while (feltétel) {
// végrehajtandó kód
}
Az alábbi kép egy while ciklus folyamatábráját mutatja be:
mycricketlive
A while ciklus folyamatábrája- A While ciklus a logikai feltétel ellenőrzésével kezdődik. Ha a kiértékelés igaz, akkor a ciklustörzs utasítások végrehajtásra kerülnek, ellenkező esetben a ciklust követő első utasítás végrehajtásra kerül. Emiatt Entry vezérlőhuroknak is nevezik
- Miután a feltételt igazra értékelték, a ciklustörzsben lévő utasítások végrehajtásra kerülnek. Általában az utasítások frissítési értéket tartalmaznak a következő iterációhoz feldolgozott változóhoz.
- Amikor a feltétel hamissá válik, a hurok véget ér, ami az életciklusa végét jelzi.
3. do-while Loop
A do-while ciklus biztosítja a kódblokk végrehajtását legalább egyszer az állapot ellenőrzése előtt.
Példa : Az alábbi Java program egy do-while ciklust mutat be, amely 0 és 10 közötti számokat ír ki egyetlen sorban.
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); } }
Kimenet
0 1 2 3 4 5 6 7 8 9 10
Szintaxis:
do {
// végrehajtandó kód
} while (feltétel);
Az alábbi kép egy do-while ciklus folyamatábráját mutatja be:
A do-while ciklus folyamatábrája- do while ciklus az utasítás végrehajtásával kezdődik. Nincs első alkalommal semmilyen állapot ellenőrzése.
- Az utasítások végrehajtása és a változó értékének frissítése után a feltétel igaz vagy hamis értékét ellenőrzi. Ha a kiértékelés igaz, a ciklus következő iterációja kezdődik.
- Amikor a feltétel hamissá válik, a hurok véget ér, ami az életciklusa végét jelzi.
- Fontos megjegyezni, hogy a do-while ciklus minden feltétel ellenőrzése előtt legalább egyszer végrehajtja az utasításait, és ezért egy példa a kilépési vezérlőhurokra.
Gyakori hurokhibák és azok elkerülése
Ha a ciklusokat nem megfelelően használják, buktatókat és hibákat okozhatnak, amelyek befolyásolják a kód teljesítményének olvashatóságát és funkcionalitását. Az alábbiakban felsorolunk néhány gyakori buktatót a hurkok esetében:
1. Végtelen hurkok
Ez az egyik leggyakoribb hiba, amikor bármilyen hurkot alkalmazunk, hogy soha nem lép ki, vagyis a ciklus végtelen ideig fut. Ez akkor fordul elő, ha az állapot valamilyen okból sikertelen.
A végtelen hurkok típusai:
- végtelen a Loop számára
- végtelen míg Loop
Példa: Itt mindkét példa a végtelen hurkokat mutatja be.
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'); } } }
Kimenet: Ha mindkét fenti kódot futtatja, TLE (Time Limit Exceeded) hibaüzenetet kap.
2. Egyenkénti hibák
Off-by-One hibákat az okozza, ha a hurok eggyel többször vagy kevesebbszer fut, mint amennyit akart. Ez alapvetően akkor történik, ha a hurokfeltétel nincs megfelelően beállítva.
Példa : Az alábbi Java program egy Off-by-One Error-t mutat be, ahol a ciklus 6-szor fut le, és azt vártuk, hogy 5-ször.
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. A hurkon belüli hurokváltozók módosítása
Ha a cikluson belül megváltoztatjuk a hurok feltételét (mint az i), akkor a ciklus bizonyos iterációkat kihagyhat, vagy olyan módon viselkedhet, ahogyan azt nem vártuk. Ez hibákhoz vagy váratlan viselkedéshez vezethet.
Példa : Az alábbi Java program bemutatja a cikluson belüli ciklusváltozó módosítását, ami miatt a ciklus kihagy bizonyos iterációkat és váratlanul viselkedik.
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. Üres huroktest
Üres huroktörzs akkor fordul elő, ha egy ciklust iterációra írnak, de nem hajt végre semmilyen műveletet a cikluson belül. A hurok futtatása hasznos műveletek nélkül zavaró lehet.
Példa: Az alábbi Java program az Empty loop body-t mutatja be.
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 } } }
Ehhez nem jön létre kimenet, mert a hurok törzse üres.
méretű betűtípus latex
Összefoglaló táblázat
Hurok típusa | Mikor kell használni | Állapot ellenőrzés | Végrehajt legalább egyszer? |
|---|---|---|---|
hurokhoz térkép iterálása java-ban | Ha pontos iterációkat szeretne | A huroktest előtt Belépés-vezéreltnek hívják. | nem |
míg hurok | Amikor először állapotot kell ellenőrizni. | A huroktest előtt Belépés-vezéreltnek nevezik. | nem |
do-while hurok | Amikor futni kell legalább egyszer | A hurok utáni törzse Kilépés-vezéreltnek nevezik. | igen |
minden hurok számára | Amikor az összes gyűjteményi elemet feldolgozza | Belső kezelésű | nem |
Kapcsolódó bejegyzések:
- hurokhoz
- míg hurok
- do-while hurok