java运算符的结合性和优先级
2013-02-18 08:33
295 查看
------- android培训、java培训、期待与您交流! --------
java运算符的结合性
所有的数学运算符都认为是从左到右运算的,java语言中大部分运算符也是从左到右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
java运算符的优先级
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。优先级如下图
上行中的优先级总是优先于下一行的,根据表中的优先级,我们分析一下
int a = 3;
int b = a+2 * a;
这个两个语句执行过程,程序先执行2*a=6,再执行a+6=9,如果使用括号就可以改变程序的执行顺序,例如
int b = (a + 2) * a;
则先执行a+2 = 5,再执行5*a=15;
表中还提到两个类型相关的运算符instanceof和(type),这两个运算符与类、继承有关。
因为java运算符存在这种优先关系,有时会遇到这样的题目:
int a = 5;
int b = 4;
int c = a++ - --b * ++a / b-- >> 2 % a--;
问:c的值是多少?
这样的语句实在太恐怖了,即使是老程序员看到这样的代码也会感到眩晕。
这样的代码只能在考试中出现,如果在现实开发团队里写出这样的代码,恐怕就要马上走人了,因为他完全不懂程序开发;源代码就是一份文档,源代码的可读性比代码运行效率更重要。因此,这里要提醒一下:
· 不要把一个表达式写的过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
· 不要过多的依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序。
--------- android培训、java培训、期待与您交流! ----------
java运算符的结合性
所有的数学运算符都认为是从左到右运算的,java语言中大部分运算符也是从左到右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
java运算符的优先级
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。优先级如下图
上行中的优先级总是优先于下一行的,根据表中的优先级,我们分析一下
int a = 3;
int b = a+2 * a;
这个两个语句执行过程,程序先执行2*a=6,再执行a+6=9,如果使用括号就可以改变程序的执行顺序,例如
int b = (a + 2) * a;
则先执行a+2 = 5,再执行5*a=15;
表中还提到两个类型相关的运算符instanceof和(type),这两个运算符与类、继承有关。
因为java运算符存在这种优先关系,有时会遇到这样的题目:
int a = 5;
int b = 4;
int c = a++ - --b * ++a / b-- >> 2 % a--;
问:c的值是多少?
这样的语句实在太恐怖了,即使是老程序员看到这样的代码也会感到眩晕。
这样的代码只能在考试中出现,如果在现实开发团队里写出这样的代码,恐怕就要马上走人了,因为他完全不懂程序开发;源代码就是一份文档,源代码的可读性比代码运行效率更重要。因此,这里要提醒一下:
· 不要把一个表达式写的过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
· 不要过多的依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序。
--------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- JAVA的各种运算符,优先级与结合性
- JAVA运算符的优先级与结合性
- Java基本语法-----java运算符的优先级与结合性
- Java中的运算符和各种运算符的优先级和结合性及注意事项整理
- Java基本语法-----java运算符的优先级与结合性
- JAVA中的标识符、变量、关键字、变量、常量、运算符、优先级
- c/c++ 运算符的优先级和结合性(整理)
- java中运算符的优先级
- Java运算符优先级
- 运算符的优先级与结合性
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- Java运算符优先级
- java运算符优先级
- Java操作符的优先级和结合性
- java 运算符优先级
- Java基础(5):位运算的使用方式、运算符优先级的图示
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- java 运算符的优先级
- 【C语言】C语言运算符的优先级和结合性一览表
- 下划线分隔符_运算符及其优先级JAVA011-014