运算符分类
计算机的最基本用途之一就是执行数学运算 , 作为一门计算机语言,Java也提供了一套;丰富的运算符来操作变量。
算术运算符
算术运算符中+ ,-, * ,/ , %属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。
二元运算符的运算规则:
- 整数运算:
如果两个操作数有一 个为 Long,则结果也为long。
没有long时,结果为int。 即使操作数全为short ,byte ,结果也是int.- 浮点运算:
如果两个操作数有一 个为double ,则结果为double.
只有两个操作数都是 float ,则结果才为float.- 取模运算:
其操作数可以为浮点数,一般使用整数,结果是“余数”,"余数”符号和左边操作数相同。如7%3=1,-7%3=-1,7%-3=1
一元运算符++与- -
inta=3;
intb= a++; //执行完后,b=3. 先给b赋值,再自增。
System.out.println("a="+a+ "\nb="+b);
a = 3;
b = ++a; //执行完后,b=4。 a先自增,再给b赋值
System.out.println("a="+a+ "\nb="+b);
赋值及其扩展赋值运算符
扩展运算符
int a=3;
int b=4;
a+=b;//相当于a=a+b;
System.out.println("a="+a+"\nb="+b);
a=3;
关系运算符
关系运算用来进行比较运算,关系运算的结果是布尔值Ture/False
注意事项
1.=是赋值运算符,而真正的判断两个操作数是否相等的运算符是==
2. ==、!=是所有(基本和引用)数据类型都可以使用。3.> 、>=、 <、 <=仅针对数值类型( byte/short/int/long,float/double 以及 char)。
逻辑运算符
逻辑运算的操作数的运算结果都是boolean值
短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。
位运算符
位运算指的是进行二进制位的运算。
字符串连接符
”+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
连接符"+"
int a=12;
System.outprintln(" a="+ a);//输出结果: a=12
条件运算符
语法格式:
x?y:z
其中x为boolean类型表达式,先计算x的值,若为true,则整个运算的结果为表达式y的值,否则整个运算结果为表达式z的值。
三目条件运算符
int score = 80;
intx = -100;
String type =score< 60?"不及格":"及格";
int flag = X> 0? 1:(x==0?0:-1);
System.out.println("type="+ type);|
System.out.println("flag="+ flag);
运算符优先级的问题
大家不需要去刻意的记这些优先级 ,表达式里面优先使用小括号来组织! !
逻辑与、逻辑或、逻辑非的优先级一 定要熟悉!(逻辑非>逻辑与>逻辑或)。如:a||b&&c的运算结果是: a||(b&&c) ,而不是(a||b)&&c