Uma vez me perguntaram: como sair de dois loops dando um break?
Bem, eu sei que em Java é bem simples... É só dar um "labeling break":
public class Main {
public static void main(String[] args) {
saidaqui: for (int i = 0; i < Integer.MAX_VALUE; i++) {
for (int j = 0; j < Integer.MAX_VALUE; j++) {
System.out.println(i + ":" + j);
if (j % 10 == 9) {
break saidaqui;
}
}
}
}
}
Com isso, quando o break executar, ele irá parar os dois loops (pois o label indica para ele sair do loop mais externo).
A mesma coisa pode ser feita em um loop/switch:
public class Main {
public static void main(String[] args) {
saidaqui: for (int i = 0; i < Integer.MAX_VALUE; i++) {
switch (i) {
case 9:
System.out.println("Vai sair");
if (true) {
break saidaqui;
}
break;
default:
System.out.println("Index: " + i);
}
}
}
}
Estranho, não?
Obs.: Acabei de ver que isso também funciona em Swift (iOS)!
import Foundation
var i: Int = 0;
var j: Int = 0;
saidaqui: for i in 0...10 {
for j in 0...10 {
print(String(format: "%d:%d", i, j));
if (j == 9) {
break saidaqui
}
}
}
Até mais!
Nenhum comentário:
Postar um comentário