CodeGym /Java blog /Véletlen /Java For Loop
John Squirrels
Szint
San Francisco

Java For Loop

Megjelent a csoportban
Egyszer Mark Zuckerberg megjegyezte, hogy a számítógépek nagyon jók a parancsok ismétlésében. Az embernek nem egyszerű, sokszor egymás után belefáradunk az ismétlésekből, de egy számítógép millió és milliárdszor képes rá, és soha nem unatkozik. Ha megpróbálsz üdvözletet küldeni az összes Facebook-felhasználónak, nincs ember, akinek elég napja van rá. Ennek a feladatnak a megoldására azonban készíthet számítógépet néhány kódsor írásával. A hurkok így működnek. Megengedik, hogy ne ismételjük meg ugyanazokat a rutin műveleteket. A Java legnépszerűbb ciklusa az úgynevezett definiált ciklus vagy for ciklus.

Hogyan írjunk for ciklust Java-ban? A hurokhoz általában

A For ciklus bizonyos utasításokat bizonyos számú alkalommal végrehajt. Például ötvenszer leírni, hogy „nem szabad annak lenni, ho-ho, ho”, vagy meghívót küldeni az összes barátodnak, tipikus feladata az ilyen ciklusoknak. A for ciklus leggyakoribb verziójának szintaxisa:

for ([counter initialization]; [checking conditions]; [changing of the counter])
{
    //  statements
}
Az inicializálási kifejezés egyszer végrehajtásra kerül, majd a feltétel kiértékelése történik, aminek logikai kifejezésnek kell lennie.
  • Amikor a ciklus elindul, az inicializálás végrehajtásra kerül.
  • Amikor a feltételek hamisra értékelődnek, a ciklusunk leállítja a működését.
A számláló változik, általában az inkrementáció (vagy csökkentés) történik minden iteráció után a cikluson keresztül. A három cikluskifejezés (inicializálás, feltétel ellenőrzése, számláló módosítása) bármelyikét kihagyhatja. A ciklus állapotát a ciklus következő lépése előtt ellenőrizzük. Ha a feltétel hamis, a program kilép a ciklusból, és a for konstrukciót követő utasítással folytatja. Itt van a for ciklus blokkdiagramja. Java ciklushoz - 2

Hogyan kell használni a ciklust Java-ban. Egyszerű példa.

Itt van egy példa a Java for ciklusra. Tízszer írjuk le, hogy "Helló!" Karakterlánc minden alkalommal az új sorból származna ennek a sornak a számával. A következő kimenetet kell kapnunk:
  1. Helló!
  2. Helló!
  3. Helló!
  4. Helló!
  5. Helló!
  6. Helló!
  7. Helló!
  8. Helló!
  9. Helló!
  10. Helló!
Itt van a Java programunk, amely megoldja ezt a problémát:

public class ForExample {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           System.out.println(i + 1 + ". Hello!");
       }
   }
}

Hogyan működik?

1. lépés: Számláló i = 0. A ciklus ellenőrzi a feltételünket, i << 10, így a ciklus utasítások végrehajtásra kerülnek. Kiírja az "1. Hello!" kifejezést. Az 1 egy karakterlánc i + 1 (mert nullától számoltunk, de az első sor még mindig az első). Az i számláló növekszik. Most i = 1. 2. lépés. Számláló i = 1. i < 10, tehát van egy kifejezésünk: "2. Hello!" és i + 1 = 2. … 10. lépés. Számláló i = 9, megvan a "10. Hello!" és i-t 10-re növeljük. 11. lépés: Számláló i = 10. i < 10 ? Nem, ez hamis. Ezért a hurok véget ért. Java ciklushoz - 3

While ciklus és for ciklus: különbségek és hasonlóságok

Java-ban a határozatlan ciklus vagy a while ciklus folyamatosan végrehajtódik, ha a logikai feltétel teljesül. A while ciklus szintaxisa:

while (boolean condition)
       {
            loop statements...
       }
Gyakran kiválaszthatja, hogy melyik hurkot szeretné használni. Néha nagyon közel vannak egymáshoz, és mindkettőt használhatja. Például itt van ugyanannak a feladatnak a kódja (tízszer kiírva a „Hello!” sorszámmal) a while ciklussal írva:

public class ForAndForEach {
   public static void main(String[] args) {
       int j = 0;  //  we use the counter this way 
       while (j < 10) {
           System.out.println(j + 1 + ". Hello!");
           j++;
       }
   }
}
A professzionális programozók azonban nem igazán szeretik a while ciklust, és ahol csak lehetséges, próbálják meg a for ciklust használni.
FOR MÍG

A for ciklust akkor használjuk, ha már tudtuk az iterációk számát.

A while ciklust akkor használjuk, ha nem tudjuk pontosan az iterációk számát.

Az inicializálás, a feltétel-ellenőrzés és a számláló módosítása már bele van fűzve egy ciklus szintaxisába

Inicializálás és állapotellenőrzés a hurkon belül. Ezenkívül használhatja a számlálót a kimutatásokban.

Végtelen ciklus ehhez:


for(;;){
	System.out.println("working...");
}

Végtelen ciklus, miközben:


while(true){
	System.out.println("working...");
}

Hogyan lehet kilépni a for ciklusból java-ban

Általában a for ciklus folyamként fut, és a ciklusból való kilépés természetes módja az, ha egy feltétel hamis értéket vesz fel. Azonban van két vezérlő utasítás, amely lehetővé teszi, hogy kilépjen a ciklusból, mielőtt egy feltétel hamis értékét megkapná – megszakítás és folytatás.
  • A break lehetővé teszi, hogy kilépjen az aktuális hurok törzséből, mintha a hurokfeltétel hamisra lett volna értékelve.
  • A folytatás a ciklust a következő lépésre (a számláló iterálása) történő ugrásra készteti anélkül, hogy végrehajtaná az utasításokat.
Oldjuk meg a következő problémát a break használatával, és folytassuk. Van egy sor nevenk, és ebből a tömbből mindenkinek köszönünk, kivéve az idegeneket. Tehát ha a ciklusunk során találkozunk egy „idegen” karakterlánccal, akkor kilépünk belőle (elmegyünk, és megállunk, hogy köszönjünk bárki másnak).

public class ForBreakExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
//  how to break out of a for loop, java: check if we have any "Stranger" in  //  our array            
if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               break;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Programunk végrehajtásának eredménye:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Lát? Menekültünk a hurok elől, mielőtt üdvözöltük Lucast és Willt. Most használjuk a Folytatást, hogy figyelmen kívül hagyjuk az „idegen”-et, de maradjunk a hurkon belül, hogy köszöntsünk más barátokat.

public class ForContinueExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
           if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Az eredmény:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Kiváló! Minden barátot üdvözöltünk, de idegennel nem beszéltünk.

A for loop vagy for-each továbbfejlesztett változata

A For-each egyfajta for ciklus, amelyet akkor használnak, amikor egy tömb vagy gyűjtemény összes elemét fel kell dolgozni. Valójában a for-each kifejezést nem használják ebben a ciklusban. A szintaxis a következő:

for (type itVar: array)
{
    Block of operators;
}
Ahol a típus az iteratív változó típusa (ugyanaz, mint a tömb adattípusa), az ItVar a neve, a tömb a tömb, vagy lehet más adatstruktúra is, például ArrayList. Amint látható, nincs számláló, az iterációs változó egy tömb vagy gyűjtemény elemein iterál, nem pedig az indexértékeken. Egy ilyen ciklus végrehajtásakor az iterációs változóhoz szekvenciálisan hozzárendeljük a tömb vagy gyűjtemény minden elemének értékét, majd a megadott utasításblokk (vagy operátor) végrehajtásra kerül. Figyelem: a for-each ciklus alkalmazható tömbökre és minden olyan osztályra, amely megvalósítja a java.lang.Iterable felületet. Oldjuk meg ugyanezt a problémát a barátok üdvözlésével, figyelmen kívül hagyva az idegeneket ("Idegen"), de ezúttal használjuk a for-each ciklust.

public class ForEachExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
	//  for each loop, Java code
       for (String name : names) {
           if (name.equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("hello, " + name);
       }
   }
}
A tanultak megerősítése érdekében javasoljuk, hogy nézzen meg egy videóleckét a Java-tanfolyamról

További olvasnivalók:

Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION