1. break
enunţ
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 exit
este introdus cuvântul. Dacă introduceți acest cuvânt, atunci isExit
variabila devine true
, condiția buclei va fi , iar bucla se va termina."!isExit
false
Java are o instrucțiune specială break
care vă permite să simplificați o astfel de logică. Dacă o break
instrucț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 break
declaraț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 break
nu este singura instrucțiune Java care vă permite să controlați comportamentul unei bucle. Java are și continue
declarația. Dacă executați o continue
instrucț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 break
instrucțiune, nu încheie bucla în sine. Declarația este și ea scurtă:
continue;
Declarația continue
este 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 1
la, 20
dar 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 1 până la 20 . Dacă numărul este divizibil cu 7 (restul împărțirii cu 7 este 0 ), atunci omitem afișarea numărului. |
De fapt, acest cod nu va funcționa , deoarece i
va rămâne pentru totdeauna blocat la număr 7
. La urma urmei, continue
declarația omite alte două afirmații: System.out.println(i)
și i++
. Ca urmare, odată ce ajungem la valoarea 7
, variabila i
nu 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 i
la începutul buclei. Dar atunci i
valoarea de pornire trebuie să fie 0
.
Opțiunea 1 | Opțiunea 2 |
---|---|
|
|
GO TO FULL VERSION