Sentència break
La sentència break té dos usos:
A la secció 5 ja vam veure el seu ús a la sentència switch.
En aquesta ocasió veurem el seu ús per a finalitzar loops.
El següent exemple és una demostració d'un loop que inclou un break.
La condició per a continuar el loop sempre és true, però s'aturarà quan la variable i
sigui 5 amb l'ús de la sentència break que hi ha a dintre del condicional.
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
Aquest bucle, en principi, no pararia mai, ja que la
seva condició sempre és true.
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 10
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 10
10 no és igual a 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 10
10
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 10
10
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 9
10
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 9
10
9 no és igual a 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 9
10 9
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 9
10 9
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 8
10 9
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 8
10 9
8 no és igual a 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 8
10 9 8
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 8
10 9 8
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 7
10 9 8
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 7
10 9 8
7 no és igual a 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 7
10 9 8 7
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 7
10 9 8 7
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 6
10 9 8 7
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 6
10 9 8 7
6 no és igual a 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 6
10 9 8 7 6
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 6
10 9 8 7 6
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 5
10 9 8 7 6
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 5
10 9 8 7 6
En aquest punt, i sí és igual a 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 5
10 9 8 7 6 5
El break trencarà el bucle
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
i: 5
10 9 8 7 6 5
int i = 10;
while (true) {
System.out.print(i + " ");
if (i == 5) {
break;
}
i--;
}
// el programa continuaria aqui...
i: 5
10 9 8 7 6 5
La sentència break només finalitza el bucle en el qual
està col·locada. Si aquest bucle està dintre d'un altre bucle, el
bucle exterior no s'aturarà.
El següent programa exemplifica aquest comportament:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
Com i és menor que 5 iterem el bucle extern.
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
j < 5 és true, s'itera el bucle intern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
j: 0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
j: 0
Com 0 == 0 s'entra en el if
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
j: 0
0
El break finalitza el bucle intern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
j: 0
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
0
El bucle extern encara no ha finalitzat
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 0
0 ⏎
Es fa una altra iteració del bucle extern.
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
0 ⏎
El bucle intern torna a començar de nou
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
0 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 0
0 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 0
0 ⏎
Aquesta vegada la i és diferent de j, per tant no es farà el break,
i el bucle intern encara no finalitza.
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 0
0 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 0
0 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 1
0 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 1
0 ⏎
0
Ara sí que es farà el break.
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 1
0 ⏎
0 1
El bucle intern finalitza.
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
j: 1
0 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
0 ⏎
0 1
L'extern encara no ha finalitzat...
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 1
0 ⏎
0 1 ⏎
Es fa una altra iteració de l'extern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
0 ⏎
0 1 ⏎
Torna a començar de zero l'intern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
0 ⏎
0 1 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 0
0 ⏎
0 1 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 0
0 ⏎
0 1 ⏎
No es farà el break
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 0
0 ⏎
0 1 ⏎
0
No es farà el break
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 0
0 ⏎
0 1 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 1
0 ⏎
0 1 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 1
0 ⏎
0 1 ⏎
0
Encara no es fa el break. Continua el bucle intern.
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 1
0 ⏎
0 1 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 1
0 ⏎
0 1 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 2
0 ⏎
0 1 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 2
0 ⏎
0 1 ⏎
0 1
Ara sí que es farà el break
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 2
0 ⏎
0 1 ⏎
0 1 2
Finalitza el bucle intern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
j: 2
0 ⏎
0 1 ⏎
0 1 2
Finalitza el bucle intern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
0 ⏎
0 1 ⏎
0 1 2
Segueix el bucle extern
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 0
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 1
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 2
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 3
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3 4
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
j: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3 4
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3 4
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 4
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3 4 ⏎
S'ha arribat a i: 5, i com no és menor a 5 el bucle
extern finalitza
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
i: 5
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3 4 ⏎
S'ha arribat a i: 5, i com no és menor a 5 el bucle
extern finalitza
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++>) {
System.out.print(j + " ");
if (i == j) {
break;
}
}
System.out.println();
}
// el programa continua per aqui...
0 ⏎
0 1 ⏎
0 1 2 ⏎
0 1 2 3 ⏎
0 1 2 3 4 ⏎
Etiquetar loops
Hem vist que el break només finalitza el bucle més interior; on está col·locat el break.
També és possible finalitzar un bucle més extern amb break, però és necessari posar una etiqueta al bucle
que volem finalitzar.
Per a posar una etiqueta a un bucle, es posa el nom de la etiqueta seguit de dos punts :, just abans del bucle.
nometiqueta:
for (...) {
}
Després, podem indicar al break quin bucle volem finalitzar indicant el nom de la etiqueta just després
de la paraula break.
bucleX:
for (...) {
for (...) {
for (...) {
break bucleX; // finalitza el bucle etiquetat amb 'bucleX'
}
}
}
El següent exemple mostra com finalitzar un bucle etiquetat:
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
i: 0
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
i: 0
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
i: 0
j: 0
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
i: 0
j: 0
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
i: 0
j: 0
0
Aquest break finalitzarà el bucle etiquetat amb bucle_de_la_i, és a dir, l'extern.
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
i: 0
j: 0
0
Aquest break finalitzarà el bucle etiquetat amb bucle_de_la_i, és a dir, l'extern.
bucle_de_la_i:
for (int i = 0; i < 10; i++) {
bucle_de_la_j:
for (int j = 0; j < 10; j++) {
System.out.print(j + " ");
if (i == j) {
break bucle_de_la_i;
}
}
System.out.println();
}
// el programa continua aquí...
i: 0
j: 0
0
Sentència continue
La sentència continue fa que un bucle se salti la iteració actual i vagi a la següent.
Es pot utilitzar amb tots els tipus de bucles:
Dintre del bucle-for, la sentència continue fa que immediatament es vagi
directament a la sentència de modificació.
Dinre del while/do-while, fa que es vagi directament a la condició.
Al següent exemple, només els nombres parells s'imprimeixen. Els imparells se salten:
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 0
El 0 és parell, no s'entra a l'if
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 0
0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 1
0
L'1 és parell, sí que s'entra a l'if
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 1
0
El continue fa que se salti la iteració actual i vagi directament a la modificació
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 1
0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 1
0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 2
0
El 2 és parell
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 2
0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 2
0
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 2
0 2
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 3
0 2
El 3 és imparell
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 3
0 2
Directament a la modificació
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 3
0 2
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 3
0 2
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 4
0 2
El 4 és parell. No s'entra a l'if
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 4
0 2
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 4
0 2
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 4
0 2 4
El bucle acaba quan i: 5 ja no és menor a n: 5
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
n: 5
i: 5
0 2 4
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
// program goes here....
n: 5
0 2 4
En la pràctica la sentència continue s'utilitza molt poc. Normalment es pot reescriure el bucle
per a que se salti la iteració sense utilitzar continue. L'anterior programa es podria haver escrit així:
int n = 5;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
System.out.print(i + " ");
}
}
Què imprimeix el següent codi?
for (int i = 0; i < 11; i++) {
if (i % 2 != 0) {
continue;
}
System.out.print(i + " ");
}
0 2 4 6 8 10
1 3 5 7 9
0 2 4 6 8 10 11
0
Quants números imprimex el següent programa?
for (int i = 0; i < 5; i++) {
System.out.println(i);
if (i < 3) {
continue;
} else {
for (int j = 0; j < 5; j++) {
System.out.println(j);
}
}
}
15
Gàlib