小瑶岚 发表于 2020-3-29 10:13:34

逻辑操作符 and or not

(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)    求助大佬,为啥这个结果输出是   4   ?
{:10_266:}

heidern0612 发表于 2020-3-29 10:19:48

本帖最后由 heidern0612 于 2020-3-29 10:25 编辑

             not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
---->      (not 1))or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
---->      0 or 0 or 4 or 6 or 9
---->      0 or 4 or 6 or 9
---->      4 or 6 or 9

and中含0,返回0; 均为非0时,返回后一个值

or中, 至少有一个非0时,返回第一个非0

你懂短路逻辑和算式优先级,这个题就好做。

天假之名 发表于 2020-3-29 13:06:08

两边都不是0的情况下
and 直接取后面的值 or 直接取前面的值
如果存在0的情况
and 直接取0 or 直接取非0
false是 0 。。
所以 0 or 0 or 4 or 6 or 9 第一个不为0的是 4 所以是4
0 or 0是 0
但 0 or 0 or 4就是 4了

小瑶岚 发表于 2020-3-30 19:20:43

原来是这样,谢谢!!{:5_108:}

小瑶岚 发表于 2020-3-30 19:21:22

天假之名 发表于 2020-3-29 13:06
两边都不是0的情况下
and 直接取后面的值 or 直接取前面的值
如果存在0的情况


好的,谢谢你的回答!!{:5_93:}

小瑶岚 发表于 2020-3-30 19:23:37

heidern0612 发表于 2020-3-29 10:19
and中含0,返回0; 均为非0时,返回后一个值

or中, 至少有一个非0时,返回第一个非0


原来是这样啊,谢谢你!!{:5_108:}
页: [1]
查看完整版本: 逻辑操作符 and or not