1. breaknyilatkozat
Nézzünk egy példát az előző leckéből:
| Kód | Magyarázat |
|---|---|
|
A program beolvas egy sort a billentyűzetről, amíg be nem írja "exit". |
A program beolvassa a sorokat a konzolról a szó beírásáig exit. Ha beírja ezt a szót, akkor a isExit változó a következő lesz true, a ciklusfeltétel pedig a lesz , és a ciklus véget ér."!isExitfalse
A Java-nak van egy speciális breakutasítása, amely lehetővé teszi az ilyen logika egyszerűsítését. Ha egy breakutasítást egy cikluson belül hajtanak végre, akkor a ciklus azonnal véget ér. A program elkezdi végrehajtani a ciklust követő utasítást. A nyilatkozat nagyon rövid:
break;
A következőképpen használhatja az breakutasítást az imént tárgyalt példa átírására:
| Kód | Magyarázat |
|---|---|
|
A program beolvas egy sort a billentyűzetről, amíg be nem írja "exit". |
2. folytassa az állítást
De breaknem ez az egyetlen Java utasítás, amely lehetővé teszi a hurok viselkedésének szabályozását. A Java-nak is megvan a continuenyilatkozata. continueHa egy utasítást cikluson belül hajt végre , a ciklus aktuális iterációja az ütemezés előtt véget ér.
A huroktest egyszeri végrehajtását a ciklus iterációjának nevezzük. Az continueutasítás megszakítja a ciklus aktuális iterációját, de az breakutasítással ellentétben nem fejezi be magát a ciklust. A nyilatkozat szintén rövid:
continue;
Az continueutasítás rendkívül kényelmes ciklusban, ha bizonyos helyzetekben ki akarjuk hagyni a ciklustörzs végrehajtását.
Feladat: Olyan programot szeretnénk írni, amely től ig számokat ír ki, 1de 20a -vel osztható számokat kihagyja 7. Így nézhet ki ez a kód.
| Kód | Magyarázat |
|---|---|
|
A program számokat jelenít meg től 1-ig 20. Ha a szám osztható -vel (a -vel 7való osztás maradéka ), akkor kihagyjuk a szám megjelenítését.70 |
Valójában ez a kód nem fog működni , mert iörökre megragad a számnál 7. Végül is az continueállítás két másik állítást kihagy: System.out.println(i)és i++. Ennek eredményeként, ha elérjük az értéket 7, a változó inem változik, és végtelen ciklusban leszünk.
Szándékosan írtuk így a kódot, hogy illusztráljuk ezt a nagyon gyakori hibát. Hogyan javítsuk meg?
Itt két lehetőség van:
1. lehetőség: módosítás ivégrehajtás előtt continue, de utánai % 7
2. lehetőség:i mindig a ciklus elején növekszik . De akkor ia kiindulási értéknek 0.
| 1.opció | 2. lehetőség |
|---|---|
|
|
GO TO FULL VERSION