鱼C论坛

 找回密码
 立即注册
查看: 2352|回复: 4

为什么这个逻辑运算会是这个结果?

[复制链接]
发表于 2015-12-16 22:03:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
结果为:4

我查了很多资料,了解到优先级
or > and > not

然后挨着算
not ((1 or 0) and (1 or 3) and (4 or 5) and (6 or 7) and 8 and 9)

然后再算
1 and 1 and 4 and 6 and 9
结果为:9

最后
not 9
结果为:False

当然,我直接not 1 and 1 and 4 and 6 and 9 其结果依然为False

但是如果我直接跑这段代码,结果会是4

于是我很好奇,,这中间我哪里理解错了,或者说电脑运行这段代码的时候发生了什么我不知道的事情?

跪求真相!!!   orz   orz   orz   orz   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-16 22:55:29 | 显示全部楼层
先澄清优先级问题:
1 or 0 and 5
结果为1,and优先运算,即 0 and 5 = 0,再 1 or 0 =1
not 0 and 2 = 2 ,即先not 0 = True,再True and 2 =2
优先级为not > and > or
现在看看这个式子:
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
False or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
False or 0 or 4 or 6 or  9
0 or 4 or 6 or 9
由于0 or 4已经为真了,后面就不运算了,即短路机制。
因此最后的值就是0 or 4 = 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 12:20:08 | 显示全部楼层
http://bbs.fishc.com/forum.php?mod=viewthread&tid=66968
这个帖子有问过这个问题!:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-18 15:19:08 | 显示全部楼层
谢谢~~非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2016-1-26 08:40:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 08:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表