Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计数循环_Java_Loops_If Statement - Fatal编程技术网

Java 计数循环

Java 计数循环,java,loops,if-statement,Java,Loops,If Statement,我有一个巨大的动画循环来控制视频游戏的程序。我有一个if语句,它被执行了好几次,因为一旦它是真的,它就会因为循环而继续执行。我需要这个语句只执行一次。我知道解决这个问题的一种方法是用一个整数变量作为计数器,但我想知道是否还有其他方法可以解决这个问题 你说一旦这是真的,它就会继续被执行。当您不想再执行此if语句时,请将其设置为false,如果无法执行,请设置某种布尔值标志。您可以使用。伪码 set flag = false for(var1 == var2) ...//do whatever

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

你说一旦这是真的,它就会继续被执行。当您不想再执行此
if
语句时,请将其设置为
false
,如果无法执行,请设置某种
布尔值
标志。

您可以使用。伪码

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

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

for(...)
{
     if(flag == false && ...)
     {
          flag = true;
     }
}
如果您担心做比较的性能。。。您可以将其分为两个循环。一个用于条件为假时,第二个用于条件为真时


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

让if语句检查具体的数字,如

for(i=0;i<10000;i++) {
    if(i==345) {
        // do something...
    }
}

用于(i=0;i请提供一些示例代码。@Tim看起来他不想打破循环,只要在条件变为真时执行
if
的内容,然后继续循环。EDIT:但是,听起来你可能是从错误的角度来处理这个问题,如果你发布一些代码,我们可以帮助你我明白了。好吧,现在这个问题(有点)更有意义了。