Objective c if条件如何与多个表达式一起工作

Objective c if条件如何与多个表达式一起工作,objective-c,if-statement,Objective C,If Statement,我的“如果条件”如下所示 if (expression1 || expression2) { // do something } else { // do something } 我的问题是,如果expression1得到满足,那么代码流将转到else部分,或者expression2得到检查,然后转到else部分。在大多数语言中,包括Objective C,|和&&都是短路运算符一旦不再需要检查这些运算符的参数,它们就不被检查了。因此,如果表达式1为真,则整个表达式: if (e

我的“如果条件”如下所示

if (expression1 || expression2) {
    // do something
} else {
   // do something
}

我的问题是,如果expression1得到满足,那么代码流将转到else部分,或者expression2得到检查,然后转到else部分。

在大多数语言中,包括Objective C,|和&&都是短路运算符一旦不再需要检查这些运算符的参数,它们就不被检查了。因此,如果表达式1为真,则整个表达式:

if (expression1 || expression2)
计算结果肯定为true,如下所示:

if(true或X)

根据定义为true,因此不需要检查X的值。这种短路行为显然取决于第一个变量的值。如果我们有:

if(false | | X)

我们必须检查X的值来计算整个表达式。同样,如果我们有:

if(true&&X)

我们需要先检查X的值,然后才能确定表达式的计算结果是否为true。然而,如果我们有:

if(false&&X)

我们知道整个表达式无论如何都是假的,所以X不需要检查——在许多语言中,它也不会被检查

即使X是一个本身由多个变量组成的复合语句,上述几点也是正确的。因此:

if (true || (expression2 || expression3))

(expression2 | | expression3)
零件无需评估,因为无论表达式2和表达式3的计算结果是什么,整个语句仍然是真的。

如果
expression1
的计算结果是
true
,那么
expression2
根本不会被计算,因为无论计算结果是什么
expression2
,If表达式都是
true


如果
expression1
计算为
false
,则计算
expression2
。如果
expression2
的计算结果为
false
,则
If
转到
else
语句

你可以这样想:

if (expression1){
//execute_block_1
} else if(expression2){
//execute_block_1
}else{
//execute_block_2
}

|的符号,或者如果任何一个变量具有true值,则返回true

if(expression1 || expression 2)
if(expression1 && expression 2)
这意味着如果表达式1或表达式2中的一个变量返回一个true值,则整个条件将返回一个true

&的符号,如果任何一个变量有false值,则返回false

if(expression1 || expression 2)
if(expression1 && expression 2)

这意味着如果表达式1或表达式2中的一个变量返回一个false值,那么整个条件将返回一个false值。在这种情况下,如果两个变量都true那么如果条件返回一个true值,那么编程语言是什么?因为行为取决于它。@saamorim我使用的是OBJC如果条件看起来像,如果(表达式1 | | |(表达式2 | |表达式3)),那么第二部分是否得到计算?如果表达式1的计算结果为真,那么第二部分将不会得到检查。不客气。更新了答案,指出了该案例。