2015-10-20 62 views
-1
While (condition-1 && condition-2) { 
    // Do something 
} 

假设条件-1失败,条件-2可能会导致分段错误。那么,即使在检查条件-2之前条件-1失败,循环会立即退出还是无论如何检查它,这使得这种做法不安全?循环中的条件顺序

例如:条件1可以是 '!节点*温度= 0' 和条件2可以是 '!TEMP->下一= INT I'

+1

如果条件1失败,条件2将不会被检查,因为AND。遇到“FALSE”时,没有任何事情可以使条件成立TRUE – CubeJockey

+1

如果条件1失败,则不会检查第二个条件&&。并且循环将退出 – SacJn

+0

如果&&被替换为||,第一个失败的第二个条件是否会失败? – Chanakya

回答

0

考虑到要使用的操作数&&,第二条件永远不会被检查,因为集体条件永远不会成立。

0

&&是一个条件语句将检查第一个条件,如果它是真的,它会检查第二个条件。但是如果它是假的,它将退出循环而不检查第二个条件。

+1

'&'是一个按位逻辑(算术)运算符,不是布尔运算符。 – rici

+0

啊,你是对的,对不起。 –

3

如果condition-1false那么没有理由检查其他条件为false && anything仍然是false。这叫做Short Circuit Evaluation

反之,如果我们有

While (condition-1 || condition-2) { 
    // Do something 
} 

condition-1 == true那么我们就永远不会检查condition-2作为true || anything仍然是正确的。