3

我有一个循环结构并想退出所有父循环,AS3 是否支持标签,就像我们在 php 中一样?

for(var i:int=0;i<100;i++)
{
    for(var j:int=0;j<100;j++)
    {
        if(j == 15){

           i = 99;
           break;

        }
    }
}
4

2 回答 2

6

是的,您可以label:像这样在循环前面使用:

// Label this loop 'outer'.
outer: for(var i:int = 0; i < 100; i++)
{
    inner: for(var j:int = 0; j < 100; j++)
    {
        if(j === 15)
        {
            // Break the outer loop.
            break outer;
        }
    }
}

这也适用于continue.

于 2013-04-03T06:20:30.123 回答
0

您也可以将 break_condition 合并到 for 循环中

var outer_break = false;
var inner_break = false;
for(var i = 0; i < 100 && !outer_break; i++) {
     for(var j = 0; j < 100 && !inner_break;j++) {
         if (some_condition) inner_break = true;
     }
}

我建议不要在这里使用标签(很多 goto),我也强烈建议不要使用 for 循环。而是使用 foreach 来迭代您需要迭代的任何内容。

于 2013-04-03T07:43:45.617 回答