Olá pessoal, sou novo no fórum… esse é meu primeiro post.
Estou iniciando em java e me pintou uma dúvida, alguém poderia me explicar o q é labeled loop e dar algum exemplo.
Antes que me mandem procurar, já fiz isso, obtive algumas respostas… más nd q eu pudesse entender completamente.
Desde já Obrigado.
?
imagina um monte de loops e la dentro da um erro?
[code]public class A{
public static void main(String [] args){
int total;
boolean erro = false;
inicio:
if(!erro)
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
for(int k=0;k<10;k++){
for(int l=0;l<10;l++){
for(int m=0;m<10;m++){
total = (i*10000 + j*1000 +k*100 + l*10 + m);
System.out.println("agora estamos tratando do : " + total);
if(total == 666) {
erro = true;
break inicio;
}
}
}
}
}
}
}
}[/code]
:shock:
Só complementando o que o peczenyj disse…
O conceito de Labeled Loop, é você dar um “label” (um nome) para um certo loop, como citado acima… Note que ele definiu um label para o primeiro loop, e para ele não ter que ficar fazendo o controle por variáveis para sair do loop que é uma coisa muito “feia” e chata de se fazer, mas dependendo do caso é necessário, ex:
boolean parar = false;
for(int i = 0; i < 10; i++)
{
for(int j = 10; j > 0; j--)
if(i * 2 == j / 2)
{
parar = true;
break;
}
if(parar)
break;
}
Você simplesmente da um “nome” para o um loop, e se tiver que parar esse loop por qualquer que seja o motivo, você o faz chamando break label. E assim é feita a mágica! Hehehe…
Qualquer dúvida posta aí!
FlwZ!
[]'s
Vlw pessoal, eu entendi como funciona.
Agora pra dar o nome ao loop, como faz ?
Obrigado
Muito simples também… Na verdade, você não da nome a um loop… E sim a um bloco de comandos… E ele é feito assim:
Label:
{
// código
}
Lembrando que o conceito das chaves é sempre o mesmo, se não houver chaves, somente a primeira linha de código que é executada, portanto, no código
Loop1:
for(int i = 0; i < 10; i++)
if(i / 2 == 4)
break Loop1;
System.out.println("Terminei o loop");
A mensagem Terminei o loop irá ser exibida em qualquer ocasião, já no código abaixo:
Loop1:
{
for(int i = 0; i < 10; i++)
if(i / 2 == 4)
break Loop1;
System.out.println("Terminei o loop");
}
Não irá ser, porque assim que i valer 8, o break Loop1 será executado, saindo assim do bloco Loop1…
Qualquer dúvida grita!
FlwZ!
[]'s
Vlw cara, acho q entendi como funciona.
Obrigado !!!
Também estou começando com o Java e achei muito semelhante com o comando go to do c ou outras linguagens da M$ por ai !
Java tbm tem GOTO e CONST são duas palavras reservadas do java mais que vc não PODE usar. =)