Ari*_*dle 4 c++ logical-operators
我有4条语句,如果语句1为真,我只想检查2-4条语句,以下是我尝试实现的伪代码
if (statement 1) {
if (statement 2 or statement 3 or statement 4){
do something()
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道下面的代码是否会这样做
if(s1 && s2 || s3 || s4) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
或者如果我必须这样做
if (s1) {
if (s2 || s3 || s4) {
doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
由于操作员优先
if(s1 && s2 || s3 || s4)
Run Code Online (Sandbox Code Playgroud)
是相同的
if((s1 && s2) || s3 || s4)
Run Code Online (Sandbox Code Playgroud)
因为&&它的优先级比更高||。你想要的是
if(s1 && (s2 || s3 || s4))
Run Code Online (Sandbox Code Playgroud)
这要是只会是真实的s1是真实的,任何的s2,s3以及s4是真实的。
您还保证有短路的&&,只要是一个内置的运营商,这意味着,如果s1是假的,s2,s3,而s4不会进行评估。||内置运算符也会发生这种情况,一旦您击中一个真表达式,其余的就不会被评估为真或任何事情都是真。
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |