1. breakenunţ
Să aruncăm o privire la un exemplu din lecția anterioară:
| Cod | Explicaţie |
|---|---|
|
Programul va citi o linie de la tastatură, până când introduceți "exit". |
Programul citește linii din consolă până când exiteste introdus cuvântul. Dacă introduceți acest cuvânt, atunci isExit variabila devine true, condiția buclei va fi , iar bucla se va termina."!isExitfalse
Java are o instrucțiune specială breakcare vă permite să simplificați o astfel de logică. Dacă o breakinstrucțiune este executată în interiorul unei bucle, atunci bucla se termină imediat. Programul va începe să execute instrucțiunea care urmează buclei. Afirmația este foarte scurtă:
break;
Iată cum puteți folosi breakdeclarația pentru a rescrie exemplul pe care tocmai l-am discutat:
| Cod | Explicaţie |
|---|---|
|
Programul va citi o linie de la tastatură, până când introduceți "exit". |
2. continua declarația
Dar breaknu este singura instrucțiune Java care vă permite să controlați comportamentul unei bucle. Java are și continuedeclarația. Dacă executați o continueinstrucțiune în interiorul unei bucle, iterația curentă a buclei se va încheia înainte de program.
Executarea corpului buclei o dată se numește o iterație a buclei. Instrucțiunea continueîntrerupe iterația curentă a buclei, dar, spre deosebire de breakinstrucțiune, nu încheie bucla în sine. Declarația este și ea scurtă:
continue;
Declarația continueeste foarte convenabilă într-o buclă dacă dorim să „sărim” execuția corpului buclei în anumite situații.
Sarcină: Vrem să scriem un program care imprimă numere de la 1la, 20dar care sărită numerele care sunt divizibile cu 7. Așa ar putea arăta acest cod.
| Cod | Explicaţie |
|---|---|
|
Programul afișează numere de la 1până la 20. Dacă numărul este divizibil cu 7(restul împărțirii cu 7este 0), atunci omitem afișarea numărului. |
De fapt, acest cod nu va funcționa , deoarece iva rămâne pentru totdeauna blocat la număr 7. La urma urmei, continuedeclarația omite alte două afirmații: System.out.println(i)și i++. Ca urmare, odată ce ajungem la valoarea 7, variabila inu se va mai schimba și vom fi într-o buclă infinită.
Am scris codul astfel intenționat pentru a ilustra această greșeală foarte frecventă. Cum o reparăm?
Există două opțiuni aici:
Opțiunea 1: modificați iînainte de a executa continue, dar dupăi % 7
Opțiunea 2: crește întotdeauna ila începutul buclei. Dar atunci ivaloarea de pornire trebuie să fie 0.
| Opțiunea 1 | Opțiunea 2 |
|---|---|
|
|
GO TO FULL VERSION