-1

我有一个巨大的动画循环来控制视频游戏的程序。我有这个 if 语句,它被执行了好几次,因为一旦它是真的,它就会因为循环而继续执行。我需要这个语句只执行一次。我知道解决它的一种方法是将整数变量作为计数器,但我想知道是否还有其他方法可以解决这个问题。

4

4 回答 4

3

你说只要真的,它就会继续被执行。当您不想再if执行此语句时,请 make it false,如果您不能这样做,则设置某种boolean标志。

于 2012-05-18T23:31:40.843 回答
0

您可以使用continue。在伪代码中

set flag = false
for(var1 == var2)
  ...//do whatever you do in loop
  if(flag)
    continue
  if(var3 == var4)
    set flag = true
  ...//do whatever in if statment
end for loop

或者

set flag = false
for(var1 == var2)
  ...//do whatever you do in loop
  if(var3 == var4 AND !flag)
    set flag = true
  ...//do whatever in if statment
end for loop
于 2012-05-18T23:34:05.733 回答
0

这是因为它是一个昂贵的 if 语句吗?您可以尝试添加短路逻辑:

for(...)
{
     if(flag == false && ...)
     {
          flag = true;
     }
}

如果您担心进行比较的性能......您可以将其分成两个循环。一个用于条件为假时,第二个用于条件为真时。

我想一些编译器优化可能已经解决了这个问题。

于 2012-05-18T23:35:32.690 回答
0

使 if 语句检查特定数字,例如

for(i=0;i<10000;i++) {
    if(i==345) {
        // do something...
    }
}
于 2012-05-18T23:40:50.297 回答