Dúvida com o Labeled Loop, se alguém puder me ajudar eu agradeço.
Bom … eu andei lendo sobre labeled loop e pelo que eu entendi é o seguinte, eu tenho 2 for o segundo está dentro do primeiro… então se eu quiser da um break no primeiro for e deixar o segundo rolar então eu crio o labeled loop (dou um nome ao laço for) então se eu quiser parar o primeiro for quando o número for igual a 5 eu dou um nome para ele e coloco dentro do if um break assim: break para_primeiro_for ; Estou certo?
Exemplo:
primeiro:for(inta=0;a<=10;a++){segundo:if(a==5){breaksegundo;}System.out.println("Primeiro loop A : "+a);for(intb=0;b<=10;b++){if(b==3){breakprimeiro;}System.out.println("Segundo Loop: "+b);}}
Não, voce usa quando deseja dar um break ou continue em um for externo de um for interno:
primeiroFor:for(inti=0;i<5;i++){System.out.printf("valor i = %d \n",i);for(intj=0;j<5;j++){System.out.printf("valor j = %d \n",j);if((i==2)&&(j==3))breakprimeiroFor;}}System.out.printf("Concluido \n");
o que acontece é que quando a condição if ((i == 2) && (j == 3)) for verdadeira sera interrompido o primeiro for e assim o segundo na sequencia.
Não é recomendável o uso de Labeled Loop, pois ele quebra o fluxo normal do programa como o goto em C, o correto nesses casos seria usar recursão.
Na verdade não. O certo para cinco interações: A0B0B1B2B3B4 A1B0B1B2B3B4 A2B0B1B2B3B4 A3B0B1B2B3B4 A4B0B1B2B3B4
exemplo:
public static void main(String[] args) {
for (int i = 0; i < 5; i ++) {
System.out.printf("A%d", i);
for (int j = 0; j < 5; j++){
System.out.printf("B%d", j);
}
System.out.printf(" ");
}
}
Não utilize também a, b ou c como variável de controle para laços for, o padrão (informal) é i, j, k…
x111
Ops, não tinha lido direito a pergunta.
Na verdade o comportamento do seu programa está correto, o que acontece é isso: