运算符与表达式

来源:互联网 发布:winxp网络连接不见了 编辑:程序博客网 时间:2024/04/30 10:58

  表达式是运算符和操作数的有效组合。运算符指出了表达式需要进行的操作,操作数指出了运算符的数据来源。


一、运算符的分类

  Java中的运算符包括算术运算符、逻辑运算符、赋值运算符、比较运算符、位运算符、三元运算符等。

算术运算符:
“%”,用于取模运算,”a%b == a mod b”,也就是取余运算。例如:”b=12%5;b=2;”。

一元运算符:
“++”、”–”,自增(减)运算符,在原操作数的基础上自加或自减1;

运算符在操作数前,先自增或自减,后参与算术运算;
运算符在操作数后,先参与算术运算,后自增或自减;

位运算符:
“&” 、 “|”对操作数执行的是按位与运算或按位或运算,

1 & 1 = 0 ;
1 & 0 = 0 ;
0 & 0 = 0 ;
1 | 1 = 1 ;
1 | 0 = 1 ;
0 | 0 = 0 ;

“&&”、”||”对操作数执行逻辑与或逻辑或运算,结果为boolean值。

短路原则
A && B ,当表达式A = false 时,表达式B不会执行;
A || B ,当表达式A = true 时,表达式B不会执行;

&&,一假为假  ||,一真为真  !,取反



二、运算符的优先级

  其中,括号的优先级最高,赋值运算符的优先级最低;剩下的运算符类别划分为一元运算符、二元运算符和三元运算符,一元>二元>三元;二元运算符又分为常用的算术运算符、不常用的逻辑运算符以及比较运算符;同一层级中,(* / %) > (+ -),(& |) > (&& ||)。“>”理解为“高于”。

这里写图片描述




Tip:
int apple = 5280 ;
int microsoft = 6000 ;
int nexus = 5000 ;
求表达式”apple * microsoft * nexus + ++apple”运行结果;

分析:

“+”为最后需要执行的算术运算,此时:

ExpA = apple * microsoft * nexus ;
ExpB = ++apple;

原表达式等价于”A + B”,分别计算表达式A、B的结果,最后作求和运算。

0 0