聊聊java的运算符

mac2024-06-03  33

java运算符

java运算符的优先级

小编访问各大博客,终于找到了一个口诀:单目乘除为关系,逻辑三目是赋值;当然最前面是()[]下来才是这个口诀,下来小编给大家解读这个口诀,以便大家都能变成java运算符的大侠。

单目:单目运算符+(正)-(负)++,–,!等

乘除:算术单目运算符(+,- * /,%)加减乘除

为:此为为位;就是位运算符(<<,>>)左移右移

关系:关系单目运算符,(<,>,<=,>=,!=)小于,大于,小于等于。大于等于等

逻辑:逻辑单目运算符(&,&&,|,||,^)

三目:三目单目运算符(A>B?A:B)

是:此处为了配和上半句没啥意思

赋值:赋值号=

我相信大家对于这个理解都是问题;

&与&&

相同点:都是逻辑运算符,都是两边为true的时候结果为true,其他为false; 不同点: &:当他是逻辑运算符的时候,两边都要执行不管左边是不是false。 当他是位运算符的时候,可以进行数字按位运算比如5&4就是0101&0100结果就是0100=4; &&:短路与,当左边的是false的时候右边不执行返回false

小编当初就是因为这个错了好多题,大家可要眼睛雪亮;

三目运算符

再来说说三目运算符

char x ='x'; int i=10; System.out.println(true?x:i); System.out.println(true?'x':10);

相信不少人一开始回写x,x; 当然小编一开始也是这种想法,但是这是错的, 三目运算符会根据运算符的精度类型进行相应的转换;第一个i是int类型,所以最后精度类型被提升为int类型,‘x’的ascii是120所以结果应该是120, 若三目运算符中的两个表达式有一个是常量表达式,另一个是类型T的表达式,且常量表达式可以被T表示,则输出结果是T类型,对于第二行输出,10是常量,所以输出应该是10;

%与/

System.out.println(-5%-3); System.out.println(-5%3); System.out.println(5%-3); System.out.println(5%3); System.out.println(-5/-3); System.out.println(-5/3); System.out.println(5/-3); System.out.println(5/3); 结果-2 -2 2 2 1 -1 -1 1

可以见得两个数字相%余数的正负看第一个数字的正负,第一个数字是正就是正,第一个数字是负就是负 两个数字相/,结果和平时算法一样,一正一负结果为负,两正结果为正,两负结果为负。

最新回复(0)