Java_13_运算符_二元运算符_取模运算_一元运算符_布尔逻辑表达符_位运算符_扩展运算符_三目条件运算符_运算符优先级
2018-03-06 19:08
951 查看
Java语言支持如下运算符:
算术运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>> 了解即可
条件运算符:?,:
扩展赋值运算符:+=,-=,*=,/=
二元运算符
整数运算:
如果两个操作数有一个为long,则结果也为long,没有long时,结果为int。即使操作数全为shot,byte,结果也是int
浮点运算:
如果两个操作数有一个为double,则结果为double。
只有两个操作数都是float,则结果才为float。
取模运算
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.0000000000000004
要点:
负数%负数=负数;System.out.println(-5.9%-3.9); //输出:-2.0000000000000004
负数%正数=负数;System.out.println(-5.9%3.9); //输出:-2.0000000000000004
正数%负数=正数;System.out.println(5.9%-3.9); //输出:2.0000000000000004
一元运算符(++,--)
int a=3;
int b=a++; //执行完后,b=3,a=4。先给b赋值,a再自增。
int c=++a;//执行完后,c=5,a=5。先自增,在给b赋值。
注意:Java中的乘幂处理:
int a=3^2; //Java中不能这么处理,^是异或符号。
double b=Math.pow(3,2);
Math类提供了很多科学和工程计算需要的方法和常数。
布尔逻辑表达符(必须是布尔值)
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。(与,或、为二元运算符)
逻辑与和逻辑或采用短路ude方式。从左到右计算,如果确定值则不会在计算下去。
逻辑与只要有一个为false,则直接返回false。
逻辑或只要有一个为true,则直接返回true。
boolean c=1>2&&2>(3/0); //短路计算方式,因此2>(3/0)并没有运算。
“&”“|”不采用短路计算,就是说即使是前面判断完成,后面的判断依然运行!!!
位运算符
~取反 &按位与 |按位或 ^按位异或
<<:左移运算符,>>:右移运算符,>>>>:无符号移位运算符。
右移一位相当于除2取商。
左移一位相当于乘2。
int a=3*2*2;int b=3<<2; //相当于3*2*2int c=12/2/2;int d=12>>2; //相当于3/2/2
输出: a=12,b=12,c=3,d=3位运算相关常识
扩展运算符
字符串连接符
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后在进行连接。
int c=12;
System.out.println("c="+c); //输出c=12
字符串相连:加号两边只要有一个为字符串,则整个结果为字符串。
三目条件运算符(又称三元运算符)
三木条件运算符,语法格式:
X?Y:Z
其中X为boolean类型表达式,先计算X的值,若为true,则整个三目运算的结果为表达式Y的值,否则整个运算结果为表达式Z的值。
例如:
int score=80;
int x=-100;
String type=score<60? "不及格":"及格";
运算符优先级的问题
大家不要去刻意的记住它,表达式里面优先使用小括号来组织!
算术运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>> 了解即可
条件运算符:?,:
扩展赋值运算符:+=,-=,*=,/=
二元运算符
整数运算:
如果两个操作数有一个为long,则结果也为long,没有long时,结果为int。即使操作数全为shot,byte,结果也是int
浮点运算:
如果两个操作数有一个为double,则结果为double。
只有两个操作数都是float,则结果才为float。
取模运算
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.0000000000000004
要点:
负数%负数=负数;System.out.println(-5.9%-3.9); //输出:-2.0000000000000004
负数%正数=负数;System.out.println(-5.9%3.9); //输出:-2.0000000000000004
正数%负数=正数;System.out.println(5.9%-3.9); //输出:2.0000000000000004
一元运算符(++,--)
int a=3;
int b=a++; //执行完后,b=3,a=4。先给b赋值,a再自增。
int c=++a;//执行完后,c=5,a=5。先自增,在给b赋值。
注意:Java中的乘幂处理:
int a=3^2; //Java中不能这么处理,^是异或符号。
double b=Math.pow(3,2);
Math类提供了很多科学和工程计算需要的方法和常数。
布尔逻辑表达符(必须是布尔值)
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。(与,或、为二元运算符)
逻辑与和逻辑或采用短路ude方式。从左到右计算,如果确定值则不会在计算下去。
逻辑与只要有一个为false,则直接返回false。
逻辑或只要有一个为true,则直接返回true。
boolean c=1>2&&2>(3/0); //短路计算方式,因此2>(3/0)并没有运算。
“&”“|”不采用短路计算,就是说即使是前面判断完成,后面的判断依然运行!!!
位运算符
~取反 &按位与 |按位或 ^按位异或
<<:左移运算符,>>:右移运算符,>>>>:无符号移位运算符。
右移一位相当于除2取商。
左移一位相当于乘2。
int a=3*2*2;int b=3<<2; //相当于3*2*2int c=12/2/2;int d=12>>2; //相当于3/2/2
输出: a=12,b=12,c=3,d=3位运算相关常识
扩展运算符
运算符 | 用法举例 | 等效的表达式 |
+= | a += b | a = a+b |
-= | a -= b | a = a-b |
*= | a *= b | a = a*b |
/= | a /= b | a = a/b |
%= | a %= b | a = a%b |
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后在进行连接。
int c=12;
System.out.println("c="+c); //输出c=12
字符串相连:加号两边只要有一个为字符串,则整个结果为字符串。
三目条件运算符(又称三元运算符)
三木条件运算符,语法格式:
X?Y:Z
其中X为boolean类型表达式,先计算X的值,若为true,则整个三目运算的结果为表达式Y的值,否则整个运算结果为表达式Z的值。
例如:
int score=80;
int x=-100;
String type=score<60? "不及格":"及格";
运算符优先级的问题
R to L | . ( ) { } ; , ++ -- ~ ! (data type) |
L to R | * / % |
L to R | + - |
L to R | << >> >>> |
L to R | < > <= >= instanceof |
L to R | == != |
L to R | & |
L to R | ^ |
L to R | | |
L to R | && |
L to R | || |
R to L | ? : |
R to L | = *= /= %= += -= <<= >>= >>>= &= ^= |= |
相关文章推荐
- Java 一元、二元运算符、三目条件运算符(三元运算符)
- java学习之旅13--运算符_01_算术_逻辑_位运算符_扩展运算符
- java中判断运算符 == 和三目运算符的优先级问题
- java语言基础(13)——运算符基本用法(算数、赋值、比较、逻辑、位运算符)
- java三目条件运算符
- Java中的条件运算符以及运算符的优先级,Java条件语句之 if
- 13_运算符_01_算术_逻辑_位运算符_扩展运算符
- JAVA 基础语法(三)——三目(条件)运算符以及分支语句
- Java运算符_算术_逻辑_位运算符_扩展运算符
- Java基础(5):位运算的使用方式、运算符优先级的图示
- Java基本语法-----java运算符的优先级与结合性
- 条件(三目)运算符 (?:)
- java ++ -- 异或 短路与 短路或 三目条件
- JAVA 的运算符及其优先级
- C语言中唯一的一个三目运算符(条件运算符)
- java 运算符 优先级 表
- Java中的三目运算符 详解
- ACCP学习旅程之-----Java运算符和条件结构(第三,四,五章节)
- 3、从零开始学习JAVA--关键字、常量、标识符、变量、运算符、转义字符、逻辑运算符、位运算符、三元运算符等
- JAVA运算符优先级概念