鱼C论坛

 找回密码
 立即注册
查看: 838|回复: 5

[已解决]or问题

[复制链接]
发表于 2021-2-27 11:21:35 | 显示全部楼层 |阅读模式
1鱼币
False or 0 的结果为0,那False or o or 4 的结果为什么是4而不是0,前面已经有结果,为什么还要继续运算?
最佳答案
2021-2-27 11:21:36
按照短路逻辑,or命令连接的左右两个元,如果左边为0,那么值就为or右边的值
所以你写的false or 0 or 4,按照从左到右运算,false or 0 结果是0,然后运算0 or 4,因为or左边是0,所以结果是右边的值,也就是4

最佳答案

查看完整内容

按照短路逻辑,or命令连接的左右两个元,如果左边为0,那么值就为or右边的值 所以你写的false or 0 or 4,按照从左到右运算,false or 0 结果是0,然后运算0 or 4,因为or左边是0,所以结果是右边的值,也就是4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-27 11:21:36 | 显示全部楼层    本楼为最佳答案   
按照短路逻辑,or命令连接的左右两个元,如果左边为0,那么值就为or右边的值
所以你写的false or 0 or 4,按照从左到右运算,false or 0 结果是0,然后运算0 or 4,因为or左边是0,所以结果是右边的值,也就是4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-27 11:59:02 | 显示全部楼层
逻辑语句短路定则:
A or B: 当A为true时,才不会执行B
C and D:当C为false时,才不会执行D

放到你这里,false or 0的结果还是false ,当然要执行后面的 or 4了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-27 14:05:10 | 显示全部楼层
我也是刚开始学习,我理解的or,就是前面为真就不会再计算后面的,直接返回前面的值
前面为假就继续执行,如果后面为真就返回后面的值,
两个都都为假,就返回后面的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-27 15:17:36 | 显示全部楼层
本帖最后由 jackz007 于 2021-2-28 13:00 编辑

      n 个表达式 or 在一起,只要其中有一个的值是 true,那么,整个表达式的值就会是 true,所以,在前面 n - 1 个表达式都是 false 的情况下,仍然不能确定表达式的值,依然需要去测试第 n 个表达式,因为,即便只有这一个表达式的值是 true,也足以让整个表达式的值发生反转;反过来,在 or 在一起的 n 个表达式中,如果第一个的值就是 true,那么,整个表达式的值就被牢牢锁定在 true 上了,后面 n -  1 个表达式的值已经无法再影响到整个表达式的值了,也就无需再逐一测试后面那 n - 1 个表达式的值。

      and 的情况是,n 个表达式 and 到一起,只要其中有一个表达式的值是 false,那么, 整个表达式的值就是 false。所以,如果前面已有 n - 1 个表达式的值都是 true,也无法确定整个表达式的值,因为,只要第 n 个表达式的值是 false,也足以使整个表达式的值发生反转;反过来,如果第一个表达式的值是 false,那就已经把整个表达式的值牢牢锁定到 false 上了,后面 n - 1 个表达式的值已经无法再影响到整个表达式的值了,也就无需再去关心、测试后面那 n - 1 个表达式的值了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-28 13:58:20 | 显示全部楼层
解决这个问题前:我们需要先了解or运算:
or是或运算,只要两个中有一个不是0就会成立,输出不是0的数(比如: 0 or 3就输出3)
如果两个都不是零,那么输出较大那个(比如:4 or 3 就输出了三)
如果两个都是0,那么输出0(比如:0 or 0就输出0)


False or 0 or 4这个问题是这样的:
计算机是由高级到低级,从左到右进行计算的,所以首先计算 False or 0
那么依照上方or计算↑,可以得出结果为0(False表示不成立,0)
接着将False or 0的结果代入False or 0 or 4里,就可以得到:0 or 4

那么依照上方or计算↑,可以得出结果为4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2023-2-9 10:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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