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次)。哈,我相信它仍然非常快:-)