Break em Loop subjacente

7 respostas
hudsonpereira

Segue um trecho de código analisável…

while(true){
    for( ){
      //preciso quebrar o loop while daqui de dentro.
    }
}

Bom se ainda não entenderam, eu quero quebrar a estrutura de repetição WHILE dentro da estutura FOR. Em outras linguagens de programação já vi isso, mas em java esqueci!

Por favor ajudem! Abraços. Agradeço desde já.

7 Respostas

guisantogui
boolean a = true;
while(a){
for(){
a = false;
}
}
drsmachado

Já tentou com um if dentro do for e, nele, um break?

drsmachado
boolean a = true;
        while(a){
            for(int r = 0; r < 30;r++ ){
                if(r > 0 && r % 13 == 0){
                    System.out.println(r + " - para");
                    a = false;
                    break;
                }else{
                    System.out.println(r +"- Continua");
                    continue;
                }
            }
        }
        System.out.println("Stopped");

guisantogui, da forma como você colocou não funciona, pois o while só voltará a ser executado caso o for finalize.
É preciso utilizar o break, que encerra a execução do for e volta o fluxo para a execução do while.

guisantogui

vlw a dica

E

A maneira mais facil seria usar uma instrução break rotulada…

Exermplo:

label:
while(true){
    for(....){
				
        break label;
    }
}

Nesse caso o break sairia da interação do while de acordo com o rotulo chamado label

hudsonpereira

Obrigado pessoal, apesar da resposta do emersonat ser o que eu mais procurava, as saídas por boleanos controladores também é uma ótima solução.

Valeu!

drsmachado

emersonat:
A maneira mais facil seria usar uma instrução break rotulada…

Exermplo:

label:
while(true){
    for(....){
				
        break label;
    }
}

Nesse caso o break sairia da interação do while de acordo com o rotulo chamado label

</blockquote>

Sim.
Lembro de nunca ter utilizado esta solução, por não ter tido esta necessidade.
Mas muito bem lembrada.

Criado 4 de fevereiro de 2011
Ultima resposta 4 de fev. de 2011
Respostas 7
Participantes 4