在 a && b 中,如果 a 和 b 都等于 1,则返回 true。如果 a=-1 且 b=-1,则表达式也返回 true。a||b 的情况类似,其中 a=-1 b = 0,它返回true。谁能解释一下原因。
问问题
48676 次
6 回答
14
a && b
当和都 为非零时 返回 1 ,而不仅仅是当它们等于 1 时。否则返回 0。a
b
a || b
当or中的至少一个 为非零时返回 1 ,而不仅仅是当其中一个等于 1 时返回 1。否则返回 0。a
b
举一些例子:
0 && 0 -> 0
1 && 0 -> 0
1 && 1 -> 1
2 && 1 -> 1
-1 && -1 -> 1
-100 && 0 -> 0
0 || 0 -> 0
1 || 0 -> 1
0 || 1 -> 1
-1 || 0 -> 1
-100 || 20 -> 1
于 2012-07-22T12:04:26.313 回答
10
C11 (n1570) §6.5.13 al 3 p 99说:
如果两个操作数比较不等于 0,则 && 运算符将产生 1;否则,它产生 0。
-1 是一个非零值,因此-1 && -1
也是1
。
于 2012-07-22T12:08:41.840 回答
2
如果两个操作数都具有非零值,则逻辑与运算符产生值 1。
显然,在您的示例中,两个操作数都是 -1,因此它们将产生 1。
在同一页面上,列出了||
如果任一操作数具有非零值,则结果为 1。
在您的情况下,一个操作数是 -1,因此结果是 1
于 2012-07-22T12:05:45.003 回答
1
如果两个操作数都具有非零值,则 AND 返回 1。如果任一操作数具有非零值,OR 返回 1。
于 2012-07-22T12:07:25.097 回答
1
和运算符 ie (&&) 仅在两个条件都为真时才会继续,而在 or 运算符 ie(||) 的情况下,如果两个条件中的至少一个为真,则将继续..
于 2017-09-30T17:37:14.773 回答
0
逻辑运算符返回 0 或 1。如果 && 运算符的两个操作数都不为 0,则返回 1。否则,它返回 0。如果参数不为 0,则执行 if(x)、while(x) 等语句。对于所有其他 +ve 和 -ve 参数,它都会被执行。
于 2012-07-22T21:05:34.883 回答