Flex/AS3 – Truques e Dicas #3 – break to label;

Flex/AS3 – Truques e Dicas #3 – break to label;

Bem, uma das vantagens dos ciclos é a redução enorme de linhas numa aplicação, pois bem existem muitos ciclos, mas hoje vou falar de um em especifico o for e de um elemento que muita gente conheçe, o break e um detalhe chamado “break to label”;

O loop funciona de forma muito simples bem como o break, imaginem:

[coolcode] for (var j:int = 0; j<5; j++) { if ( j == 2)  break; } [/coolcode] Este código executa o cilco 5 vezes, mas como temos um break se o j==2 ele simpelsmente só é executado 2 vezes… mas agora imaginem um ciclo dentro de outro ciclo:

[coolcode] for (var i:int = 0; i<5; i++) { for (var j:int = 0; j<3; j++) { if ( j == 2) break; } }[/coolcode] Neste caso, o break apenas vai travar o segundo ciclo for enquanto que o primeiro continua a ser executado, ou seja, para cada valor de I o segundo ciclo será executado 2 vezes porque tem o break==2;

Mas agora imaginem que eu quero parar ambos os ciclos quando o j==2, claro que poderia fazer o seguinte:

[coolcode] var controlo:int=0;

for (var i:int = 0; i< 5; i++) { for (var j:int = 0; j<3; j++) { if ( j == 2)) { break; controlo=1; } } if(controlo==1) break; } [/coolcode] Mas iria alongar muito o meu código certo? é aqui que entra em acção mais uma dica, o label, que nor permite indicar labels para servirem de break, sendo definido pelo utilizador, é um pouco complicado explicar em palavras, por isso vejam como resolveriamos o exemplo em cima: [coolcode] inicial: for (var i:int = 0; i<5; i++) { for (var j:int = 0; j<3; j++) { if (j == 2)  break inicial; } } [/coolcode] Simples não? apenas indiquei um label 'inicial' na linha do primeiro ciclo, e quando fiz o break indiquei que o break deveria ser feito, mas saltando para o label, ou seja, saltando para fora dos 2 ciclos. Esta é mais uma dica que nos poupa bastante trabalho, principalmente em projectos grandes onde tenhamos varios ciclos executados dentro uns do outros. Estes labels também podem ser usados pelo continue mas isso fica para uma próxima dica.

Espero que seja util,

Abraço!


3 comments

add yours
  • Felipe April 2, 2009

    Obrigado Mário, isso vai ser muito útil.

  • Luis Fonseca April 4, 2009

    Olá Mário!

    Acho que você devia instalar um plugin na sua página para mostrar o código! Assim como está é muito difícil de ler.

  • Mário Santos April 6, 2009

    Ola Luis,

    Eu já tinha aqui instalada uma plugin… mas estava com uns problemas mas finalmente graças à sua sugestão ganhei corangem para arranjar a plugin e agora sim funciona às mil maravilhas :)

Leave a Comment

Post