Java hurkok

Java hurkok
Próbáld ki a GfG Practice-n Előrehalad

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:

While-hurokA 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).

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:

Do-while-hurokA 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.

Összefoglaló táblázat

Hurok típusa

Mikor kell használni

Állapot ellenőrzés

Végrehajt legalább egyszer?

hurokhoz

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
Kvíz létrehozása