If statement 满足条件时关闭条件检查?

If statement 满足条件时关闭条件检查?,if-statement,conditional-statements,If Statement,Conditional Statements,当满足某个条件时,是否可以关闭该条件的检查?这将如何实现(使用您选择的语言) 例如: 假设if语句在update函数中运行,我希望当该语句在程序生命周期中运行true一次时,不要调用该if语句。我认为这可能是通过将语句包装在函数变量(javascript)中,然后在条件为真时重新分配该变量以返回void来实现的。好吧,假设您有这样一个(C++): void update(){ //代码 如果(条件){ //代码 } //代码 } 您可以做的是: void update(){ //代码 静态

当满足某个条件时,是否可以关闭该条件的检查?这将如何实现(使用您选择的语言)

例如:


假设if语句在update函数中运行,我希望当该语句在程序生命周期中运行true一次时,不要调用该if语句。我认为这可能是通过将语句包装在函数变量(javascript)中,然后在条件为真时重新分配该变量以返回void来实现的。

好吧,假设您有这样一个(C++):

void update(){
//代码
如果(条件){
//代码
}  
//代码
}
您可以做的是:

void update(){
//代码
静态布尔值已_ran=false;
如果(!已运行&&条件){
alreadu_ran=真;
//代码
}  
//代码
}

static
表示变量在函数调用上保留其值,在C/C++中,逻辑运算符(
&&
在本例中)短路。这意味着除非需要,否则它们不会计算第二个操作数。例如,如果
!已经运行的
false
那么不管
条件如何,整个表达式都是
false
,所以
条件
不会被计算。

不是100%确定这比使用一个简单的条件来运行increaseValue()函数效率更高,但这是我正在使用的代码,它似乎可以工作(至少在as3中). 每秒大约调用30次更新

public function update(){
    if(isHit){ //isHit is part of another condition used by collision
        increaseValues = function() {
            this.height += 1;
            this.width += 1;
            this.x -= 1;
            this.y -= 1;
            this.alpha += -0.1;
            if (this.alpha == 0){
                increaseValues = function(){
                    return;
                }
            }
        }
    }
    increaseValues();
}

只需超出条件范围,如
while
中的
中断
??如果严格意义上是If(但不仅仅是If),则只需删除检查条件的代码即可。如果你的意思是当且仅当,那么这是不可能的,作为决定是否检查条件,你将首先必须检查条件,在这一点上,不检查条件为时已晚。你能更清楚吗?试着给出一个你想要达到的行为的例子。谢谢你的投入@bolov说if语句在update函数中运行,我希望当该语句在程序生命周期中运行true一次时,不要调用该if语句。我认为这可能是通过将语句包装在函数变量(javascript)中,然后在条件为真时重新分配该变量以返回void来实现的。或者使用Do While或While循环,因此如果满足条件,语句现在将终止……条件仍在评估中。我希望会有一些母语功能或设计模式来避免这种情况。原因是我认为它比在每次调用update()时运行任意数量的条件(即使是布尔值,也可能是1000)更有效(例如每秒30次)。哈,我相信它仍然非常快:-)