我在C#unity 3D游戏的更新功能中调用了if块。不用说,它会被调用很多,所以我尽可能地优化它。我需要做两次检查:
telnet ip_address 3306
现在,对于每个被调用的更新,我想首先检查简单的playerIsFlagged,然后检查距离。所以我写道:
if (playerIsFlagged == true){
if (player.distance < 10){
doaction()
}
}
在这种情况下,代码是否会在失败if测试之前测试两个变量值,或者当它检查第一个(playerisFlagged)是否为假时它会自动跳过第二个(距离)检查?
换句话说,两种情况下的表现是否存在差异?
答案 0 :(得分:1)
在第一种情况下,如果playerIsFlagged为true,那么它将检查第二个条件。
在第二种情况下,如果playerIsFlagged为false,则跳过第二种情况。这称为short-circuit evaluation
答案 1 :(得分:0)
首先,if(booleanValue == true)
是多余的,你可以写if(booleanValue)
或if(!booleanValue)
来检查错误。
在回答您的问题时,使用双&&
就是这样,检查第一个操作数,如果是,则忽略其余操作。同样的规则适用于双||