黑马程序员技术交流社区

标题: 算数运算符的优先级 [打印本页]

作者: 张成龙    时间: 2012-5-13 07:20
标题: 算数运算符的优先级
刚才看到论坛上关于自增运算符的问题,以前学习c时知道优先级的问题,不知道java中算数运算符和c中算术运算符优先级有是否有区别?
作者: 索学超    时间: 2012-5-13 08:05
Java中的运算符肯定有优先级滴。毕竟java也是C的后代。不过我没学过C,不知道C里面的是怎么排的,我就光把java里的谢下,你自己对比下哈。。
java中的运算符按优先级从高到低排列::[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op=   。Java中整数运算符在整数运算时,如果操作数是long类型,则运算结果是long类型,否则为int类型,绝不会是byte,short或char型。这样,如果变量i被声明为short或byte,i+1的结果会是int。如果结果超过该类型的取值范围,则按该类型的最大值取模。单目整数运算符是:   运算符操作-单目非~位补码++加1--减1
作者: 曾_强    时间: 2012-5-13 08:57
                                                           运算符优先级表
优先级
运算符
结合性
1
() [] .
从左到右
2
! +(正)  -(负) ~ ++ --
从右向左
3
* / %
从左向右
4
+(加) -(减)
从左向右
5
<< >> >>>
从左向右
6
< <= > >= instanceof
从左向右
7
==   !=
从左向右
8
&(按位与)
从左向右
9
^
从左向右
10
|
从左向右
11
&&
从左向右
12
||
从左向右
13
?:
从右向左
14
= += -= *= /= %= &= |= ^=  ~=  <<= >>=   >>>=
从右向左



 说明:

  1、 该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低。

  2、 结合性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3+-4,则意义为3加-4,符号首先和运算符右侧的内容结合。

  3、 instanceof作用是判断对象是否为某个类或接口类型。

    4、 注意区分正负号和加减号,以及按位与和逻辑与的区别
以上请参考。实际开发过程注意运算优先级别的情况还是很少的。直接用小括号( )替代就行。




作者: It's_Zero    时间: 2012-5-13 08:58
Java 语言本身是由 C 写的,Java不过是对C进行了改进,将一些混乱的东西整合了,把难的东西去掉了(指针....)
所以在代码的运算符优先级上,Java和C是一致的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2