Juniorboy 发表于 2020-4-15 20:34:08

关系运算符

E. a = b - c || a % b && c / d
写成:a = ((b – c)4 || ((a % b)1 && (c / d)2)3)5
求值:a = ((b - c) || (1 && 0)) == a = (3 - 4) || 0 == a = (-1 || 0) == a = 1
请问这个为什么不是c/d是第一步

zltzlt 发表于 2020-4-15 20:35:49

因为 && 的优先级比 || 高,所以先算 && 两旁,从左往右计算

Juniorboy 发表于 2020-4-15 20:43:28

zltzlt 发表于 2020-4-15 20:35
因为 && 的优先级比 || 高,所以先算 && 两旁,从左往右计算

那也不对啊,/高于%啊

zltzlt 发表于 2020-4-15 20:45:02

Juniorboy 发表于 2020-4-15 20:43
那也不对啊,/高于%啊

&& 就是从左往右计算的,而且 / 的优先级不高于 %

Juniorboy 发表于 2020-4-15 20:45:41

zltzlt 发表于 2020-4-15 20:35
因为 && 的优先级比 || 高,所以先算 && 两旁,从左往右计算

是因为短路运算吗,不管&&或||两边的优先级了,直接一律从左往右计算

zltzlt 发表于 2020-4-15 20:46:17

Juniorboy 发表于 2020-4-15 20:45
是因为短路运算吗,不管&&或||两边的优先级了,直接一律从左往右计算

是的,就是从左往右

Juniorboy 发表于 2020-4-15 21:07:06

zltzlt 发表于 2020-4-15 20:46
是的,就是从左往右

好的,谢谢。
页: [1]
查看完整版本: 关系运算符