我有一个 for 循环,您可以在这个问题的底部看到它,在这个 for 循环内有多个 if 语句,我希望如果调用其中一个 if 语句,则 if-对于该 for 循环的其余部分,语句将被禁用。有办法这样做吗?
for (var i = 0; i < chunksInScene.length ; i++) {
if(chunksInScene[i].name.Substring(0,5) == "Chunk" || chunksInScene[i].name.Substring(0,5) == "_TERR" || chunksInScene[i].name.Substring(0,5) == "ACTIV") {
if(chunksInScene[i].tag != "Player") {
if(chunksInScene[i].Equals(chunk1)){load1 = false;continue;}
if(chunksInScene[i].Equals(chunk2)){load2 = false;continue;}
if(chunksInScene[i].Equals(chunk3)){load3 = false;continue;}
if(chunksInScene[i].Equals(chunk4)){load4 = false;continue;}
if(chunksInScene[i].Equals(chunk5)){load5 = false;continue;}
if(chunksInScene[i].Equals(chunk6)){load6 = false;continue;}
if(chunksInScene[i].Equals(chunk7)){load7 = false;continue;}
if(chunksInScene[i].Equals(chunk8)){load8 = false;continue;}
if(chunksInScene[i].Equals(chunk9)){load9 = false;continue;}
if(chunksInScene[i].Equals(chunk10)){load10 = false;continue;}
if(chunksInScene[i].Equals(chunk11)){load11 = false;continue;}
if(chunksInScene[i].Equals(chunk12)){load12 = false;continue;}
if(chunksInScene[i].Equals(chunk13)){load13 = false;continue;}
if(chunksInScene[i].Equals(chunk14)){load14 = false;continue;}
if(chunksInScene[i].Equals(chunk15)){load15 = false;continue;}
if(chunksInScene[i].Equals(chunk16)){load16 = false;continue;}
if(chunksInScene[i].Equals(chunk17)){load17 = false;continue;}
if(chunksInScene[i].Equals(chunk18)){load18 = false;continue;}
if(chunksInScene[i].Equals(chunk19)){load19 = false;continue;}
if(chunksInScene[i].Equals(chunk20)){load20 = false;continue;}
if(chunksInScene[i].Equals(chunk21)){load21 = false;continue;}
if(chunksInScene[i].Equals(chunk22)){load22 = false;continue;}
if(chunksInScene[i].Equals(chunk23)){load23 = false;continue;}
if(chunksInScene[i].Equals(chunk24)){load24 = false;continue;}
if(chunksInScene[i].Equals(chunk25)){load25 = false;continue;}
}
}
}
最佳答案
由于您不想停止循环,但为了循环的提醒,请忽略执行的 if
语句。然后您需要为每个 if 语句创建一个条件。
您可以创建一个 boolean
类型的数组,并在其中一个 if
内将其设置为 false。像这样:
var myArray : boolean[] = new boolean[NUMBER_OF_IFs];
if(myArray[0] && chunksInScene[i].Equals(chunk1)
{
load1 = false;
myArray[0] = false;
continue;
}
您需要确保数组的每个元素都有一个代表 if 语句的元素。
这就是代码中的样子:
var myArray : boolean[] = new boolean[25];
for (var i = 0; i < chunksInScene.length ; i++)
{
// I changed this part, the long if statement was driving me crazy.
var temp = chuckInScene[i].name.Substring(0,5);
if((temp == "Chunk" || temp == "_TERR" || temp == "ACTIV") && chunksInScene[i].tag != "Player")
{
if(myArray[0] && chunksInScene[i].Equals(chunk1))
{load1 = false; myArray[0] = false;continue;}
if(myArray[1] && chunksInScene[i].Equals(chunk2))
{load2 = false; myArray[1] = false; continue;}
if(myArray[2] && chunksInScene[i].Equals(chunk3))
{load3 = false; myArray[2] = false; continue;}
.
.
.
// You write the rest.
if(myArray[25] && chunksInScene[i].Equals(chunk25))
{load25 = false; myArray[25]; continue;}
}
}
关于for-loop - 在unityscript中的for循环中停止一个代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590821/