四仰化三铁 发表于 2020-10-14 22:14:34

关于运算优先级

为什么先算'a'+'b'而不是先算/和%,大佬能解释下吗,感谢

乐乐学编程 发表于 2020-10-14 22:17:33

优先级给你,请收好

不能懒 发表于 2020-10-14 22:18:00

||或运算,从左往右吧

乐乐学编程 发表于 2020-10-14 22:19:56

对照这张表,上面的题就不难了

昨非 发表于 2020-10-14 22:22:55

本帖最后由 昨非 于 2020-10-14 22:31 编辑

||运算符从左到右运算,所以先执行左侧,左侧<=运算符的优先级低于+,所以先执行"a"+"b"

右侧除/,和取余%优先级高于+-,所以先执行前者

左右两端都有结果后,再进行逻辑或||

四仰化三铁 发表于 2020-10-15 20:20:47

昨非 发表于 2020-10-14 22:22
||运算符从左到右运算,所以先执行左侧,左侧

{:10_281:}{:10_281:}
还有一个小点没懂
\不是比‖优先级高吗{:10_247:}
为什么先看‖的从左向右了

昨非 发表于 2020-10-15 20:25:31

四仰化三铁 发表于 2020-10-15 20:20
还有一个小点没懂
\不是比‖优先级高吗
为什么先看‖的从左向右了

正因为||优先级底,所以执行完它左边,再执行完右边的\,才执行它的

乐乐学编程 发表于 2020-10-15 21:09:04

本帖最后由 乐乐学编程 于 2020-10-15 21:10 编辑

第2 句已经告诉你步骤了(红色标记的就是),我又给了你那张优先级表,还不明白呀?

((‘a' + 'b')1 <= 'c') 2|| ((a / b)3 +(d%c)4)5

求值:
1、2 ((97 + 98) <= 99)第1步先算 97 + 98 = 195,用它的值与 99 比较,得到关系式为假,即 (97 + 98) = 195 <= 99)运算后为 0;

||这个或运算先不管,算第3步、第4步:

3、4 ((1 / 2) + (4 % 3)) 1除2等于0.5,4除以3取余数得到1,于是这个关系式等于 1.5,得到关系式为真,即 (1 / 2) + (4 % 3) = (0 + 1) 运算后为 1;

5、 最后再来算这个或运算:

      (195 <= 99)|| (0 + 1)
(上式的左边为) 0 || 1 (上式的右边为)

最终的结果为: 1

四仰化三铁 发表于 2020-10-15 21:26:59

谢谢谢谢

乐乐学编程 发表于 2020-10-15 23:13:22

四仰化三铁 发表于 2020-10-15 21:26
谢谢谢谢

满意了,就给个最佳答案吧~~
页: [1]
查看完整版本: 关于运算优先级