Arrays 如果station插入双for循环?
如何在double for循环中执行IF语句,检查数组中的对象是否等于selectedItem.label?这是我的尝试!没用Arrays 如果station插入双for循环?,arrays,actionscript-3,if-statement,for-loop,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]
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;
}
}
}
}
因为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;
}
}
}
单独使用break语句只会中断内部循环
打破[标签]
它解释说:
在嵌套循环中,“中断”仅跳过直接循环的其余部分,而不会中断整个嵌套循环序列。要断开整个嵌套循环系列,请使用label
它提供了一个与您类似的示例:
outerLoop: for (var i:int = 0; i < 10; i++) {
for (var j:int = 0; j < 10; j++) {
if ( (i == 8) && (j == 0)) {
break outerLoop;
}
trace(10 * i + j);
}
}
/*
1
2
...
79
*/
关于代码不工作时发生的情况的更多细节可能会有所帮助。实际上,您不需要带有continue块的if语句的上半部分。你有错误吗?你有没有试着查出来?