鱼C论坛

 找回密码
 立即注册
查看: 628|回复: 7

[已解决]and / or (零基础文科生轻喷)

[复制链接]
发表于 2020-4-4 21:39:46 | 显示全部楼层 |阅读模式

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

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

x
“我们按照优先级给它们加上括号:(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
== 4”

请问为什么 0 and 1 == 0,3 and 4 ==4 ???
最佳答案
2020-4-4 21:48:03
and是逻辑判断,两边都不为0则取后面的数为最终值;若有0则为0且左边为0则不判断右边的值;
or也是逻辑判断,两边只有都为0才最终值为0;若有非0则取第一个非0数为最终值且左边不为0时不判断右边的值;
上面两行最后说的不判断就是短路原则。
所以,0 and 1 = 0,3 and 4 = 4;
0 or 0 or 4 or 6 or 9 = 0 or 4 or 6 or 9 = 4 or 6 or 9 = 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-4 21:41:08 | 显示全部楼层
还有一个问题……
为什么 0 or 0 or 4 or 6 or 9 ==4 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:42:42 | 显示全部楼层
or是一真则真
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:42:43 | 显示全部楼层
这是我的理解,希望对你有帮助,看懂了代进去算就恍然大悟了
4.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:46:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:48:03 | 显示全部楼层    本楼为最佳答案   
and是逻辑判断,两边都不为0则取后面的数为最终值;若有0则为0且左边为0则不判断右边的值;
or也是逻辑判断,两边只有都为0才最终值为0;若有非0则取第一个非0数为最终值且左边不为0时不判断右边的值;
上面两行最后说的不判断就是短路原则。
所以,0 and 1 = 0,3 and 4 = 4;
0 or 0 or 4 or 6 or 9 = 0 or 4 or 6 or 9 = 4 or 6 or 9 = 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:48:37 From FishC Mobile | 显示全部楼层
因为0属于假所以直接就返回假了后面的就不在运算了,3and4两个都为真,and必须两个都为真,所以返回第二个值。or这个只要有一个为真就可以了,所以遇到第一个为真的时候后面就不在运算了直接返回第一个遇到为真的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:50:57 From FishC Mobile | 显示全部楼层
and是必须两个都为真才为真,所以遇到第一个为真还要继续运算第二个也为真才可以,因为0属于假所以直接就返回假了后面的就不在运算了,3and4两个都为真,and必须两个都为真,所以返回第二个值。or这个只要有一个为真就可以了,所以遇到第一个为真的时候后面就不在运算了直接返回第一个遇到为真的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 23:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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