Java程序设计基础陈国军版第五版第三章习题答案与解析

18.写出下列表达式的值,设x=3,y=17,yn=true.

先说一个关于Java运算符优先级口诀;

一元乘除加减然后位,逻辑三元赋值就结束。

解释一下:一元即为一元逻辑运算符,其中包括: ++、--、-(这是负号不是减号)、+(这是正号不是加号)、!、~

乘除:    *、/、%

加减: +、-

位即为位运算符,其中包括:

逻辑即为逻辑运算符,其中包括:&、|、&&、||、^

三元即为三元条件运算符即: 表达式1?表达式2:表达式3

当表达式1的结果为ture时,整个式子的结果为表达式2的值,当表达式1的结果为false时,整个式子的结果为表达式3的值.

赋值就是拓展赋值运算符,例如;+=,-+,*=等等

(1)x+y*x--

解:第一步:y*x=3*17=51

第二步: x+51=54

这时结果已经出来了就是54,而x--还没有算,因此x--对式子没有影响

最后进行x--,x=x-1,即x=3-1=2,

(2)-x*y+y

先-x即-3,然后(-3)*17=-51,-51+17=-34

(3)x

&&为简洁与,x

(4)x>y||!yn

注意;先 !yn=false,   x>y为false,   两个结果都为false,最后结果为false

(5)y!=++x?x:y

先++x,    x=x+1=4,  17!=4的结果为true,整个式子的结果为x的值,为4

(6)y++/--x

先--x,   x=x-1=2,    y/2=17/2=8.5,   最后别忘了y++,y=y+1=18,

你可能感兴趣的:(Java,运算符)