– Szia Amigo!
"Ma néhány olyan dologról fogok mesélni, amelyek kényelmesek a hurkokkal való munka során."
"Az első a kulcsszótörés . Ha ezt a parancsot egy ciklus törzsében használja, akkor a ciklus azonnal leáll a parancs végrehajtása után. Íme egy példa:
Példa | Kimenet: |
---|---|
|
0 1 2 3 4 5 |
"A break csak hurokban használható?"
"Igen. A break utasítás csak ciklusban használható. Ha egy break utasítást végrehajtanak, a ciklus azonnal véget ér."
"Ok értem."
"Remek. Most a második dolog, amit meg akarok osztani, az a tovább kulcsszó. Ez is csak ciklusban használható. Amikor ez a parancs végrehajtódik, azonnal megkezdődik a ciklus új iterációja. Más szóval, minden megmaradt kód a ciklusban a hurok törzsét egyszerűen kihagyják."
"Íme egy példa:"
Példa | Kimenet: |
---|---|
|
1 3 5 7 9 |
"Tehát, ha a program egy ciklusban elér egy folytatási parancsot, leállítja a kód végrehajtását a ciklusban?"
"Nem. Nézd, van egy ciklusunk, amikor ugyanazt a kódot többször hajtjuk végre. A fenti példában van egy ciklusunk 0-tól 9-ig, azaz a ciklus törzse 10-szer kerül végrehajtásra. Ugye?"
"Igen."
"A hurok törzsén egy áthaladást iterációnak nevezünk. A ciklusunk 10 iterációból áll – a ciklus törzse tízszer kerül végrehajtásra."
– Igen, ez egyértelmű.
"A folytatás parancs idő előtt leállítja az aktuális iterációt, azaz a cikluson belül maradó kód kimarad, és új iteráció kezdődik."
"Íme egy másik példa:"
ArrayList list = new ArrayList();
for (Object o: list)
{
if (o == null) continue;
System.out.println(o.toString());
}
"Ebben a példában a listában szereplő összes objektum karakterlánc-ábrázolását jelenítjük meg. A nulla objektumokat azonban kihagyjuk."
"Rendben, értem. Látom, milyen kényelmes ez."
"Igen. A címkékről is szeretnék mesélni. Javaban ritkán használják őket, mert gyakran megsértik a program logikájának szépségét. De előfordulhat, hogy valamikor találkozni fogsz velük a kódban. Szóval inkább mesélek nem hallottál róluk a játszótéren."
"Valamikor megengedhető volt, hogy bármelyik sorról bármelyik sorra ugorjunk a kódban. Ezt a címkék és a goto utasítás segítségével tettük. Így néz ki:"
System.out.println("Make cookies,");
label: System.out.println("not");
System.out.println("war");
goto label;
"Ebben a példában a goto label parancs végrehajtása után a program a label jelű sorra ugrik .
"Később mindenki meggondolta magát, és úgy döntött, hogy nem használja a goto utasítást. A Java nem támogatja a goto-t, de a goto fenntartott szó. Nem nagy ügy…"
"Szóval nincs goto és nincsenek címkék a Java-ban?"
"Nincs goto nyilatkozat, de vannak címkék!"
"Hogy lehetséges?"
"A Java nyelven a címkék használhatók a folytatás és a szünet parancsokkal. Akkor használatosak, ha sok beágyazott hurok van."
"Például tegyük fel, hogy 5 beágyazott hurokkal rendelkezik, és ha valamilyen feltétel teljesül, háromból szeretne kikerülni, de nem mindegyikből. A címkék elegáns módja ennek:"
label1: for (int i = 0; i < 10; i++)
label2: for (int j = 0; j < 10; j++)
label3: for (int k =0; k < 10; k++)
if (i == j && j == k)
break label2;
"Ebben a példában a break utasítás végrehajtásakor nem a k változóval lépünk ki a ciklusból, hanem a label2 címkével ellátott ciklusból - azaz azonnal kilépünk a két ciklusból k-val és j-vel."
– Milyen gyakran használják?
"Hogy őszinte legyek, nem gyakran, de soha nem tudhatod. Talán egyszer meglátod. Ezek a szintaxis alapjai – mindezt tudnod kell!"
"Rendben. Köszönöm, Bilaabo."
GO TO FULL VERSION