IF-Statment不包含双循环?

时间:2015-05-04 18:04:09

标签: arrays actionscript-3 if-statement for-loop

如何在double for循环中执行IF语句,检查数组中的对象是否等于selectedItem.label?这是我的尝试! (没有工作)

function klikkA(evt:Event):void{
    for( var j:int = 0; j < 4; j++)
    {
        for (var k:int = 0; k < 8; k++)
        {
            if (listeA.selectedItem.label != myArray[j][k])
            {
                continue;
            }
            else if(listeA.selectedItem.label == myArray[j][k])
            {
                txtFlagg.text = myArray[j][k];
                break;
            }
        }  
    }
}

2 个答案:

答案 0 :(得分:0)

由于break只能跳出单循环,因此您需要使用flag或goto。

我使用外部循环检查的标志,因为它通常更为公认的做法:

var found = false;

for( var j:int = 0; !found && j < 4; j++)
{
    for (var k:int = 0; k < 8; k++)
    {
       .... if(listeA.selectedItem.label == myArray[j][k])
       { ....
            found = true;
            break;
        }
    }  
 }

答案 1 :(得分:0)

单独使用break语句 只会破坏内部循环。

As you can see in the documentation of break, you can specify a label

  

打破[标签]

它解释道:

  

在嵌套循环中,break仅跳过立即循环的其余部分,并且不会突破整个嵌套循环系列。要打破整个系列的嵌套循环,请使用标签

There's additional documentation on the label keyword

它提供了一个与你的相似的例子:

[mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]];
    }