概述
运算符:对常量进行操作的符号,叫做运算符。例如“+”
表达式:用运算符将多个常量或变量连起来的式子,叫做表达式。例如a+b
常用运算符分类:
算术运算符
赋值运算符
比较运算符
逻辑运算符
public class Demo3Operator{
public static void main(string[] args){
system.out.println(100+20);//120,说明运算符可以用于常量
int x = 10;
int y =20 ;
System.out.println(x-y);//-10
System.out.println(x*y);//200
//java 当中的除法进行的是"整除”
int a =10;
int b = 3;
System.out.println(a/b);//结果是3,商是3,余数是1
//如果计算中有小数参与,那么结果一定是小数
int m = 10;
double n =3.0;
System.out.println(m+n);//13.0
}
}
取模运算
对于整数来说,如果使用除法(/)那么只看商,不看余数。
如果只希望看余数的话,那么需要使用取模运算符:%
注意:只对整数进行取模运算
int a = 30;
int b = 3;
System.out.println(a%b);//1
字符串连接
如果将加号(+)用于字符串,那么将不再是数学运算,而是字符串连接。
任何数据类型与字符串进行连接,结果都将是字符串类型
算术运算符当中的加号(+)对于字符串来说,并不是相加的意思,而是连接的功能。
使用字符串类型的变量;
string str = “Hello”;
注意事项:
1.任何数据类型和字符串进行连接操作,结果一定是字符串。
2.字符串连接的时候,要注意先后顺序,优先级问题。
String str1 = "Hello";
String srt2 = str1 +"world";
System.out.println(str2);//Helloworld
String str4 = "Hello"+30;
System.out.println(str4);//Hello30
String str5 = "Hello" + 10 + 20;
System.out.println(str5);//Hello1020
String str6 = "Hello" + (10+20);
System.out.println(str6);//Hello30
赋值运算符
1.基本赋值运算符: =
2.复合赋值运算符:
+= a+=3 a = a+3
-= b-=4 b = b - 4
*= c = 5 c = c5
/= d /= 6 d = d/6
%= e %=7 e = e%7
注意事项:
赋值运算符只能左侧是一个变量,左侧不能是常量,右侧无所谓。
比较运算符
< >= <= == !=
比较运算符也叫做关系运算符,用来代表俩个数据之间的关系。
比较运算符结果一定是一个boolean值,成立true 不成立 false
System.out.println(10<=20);//true
System.out.println(20<=20);//true
逻辑运算符
与(并且) & 全都是true才是true ,否则就是false
或 (或者) | 至少一个是true就是true 全是false才是false
亦或 ^ 相同就是false,不同才是true
非(取反) !
注意事项:
1.逻辑运算符通常用来连接多个布尔值。
2. 如果是两个布尔值进行连接: 布尔值A & 布尔值B
3. 如果是多个布尔值进行连接: 布尔值A & 布尔值B & 布尔值C
4. 如果是取反运算符,那么只能用于一个布尔值身上: !布尔值
System.out.println(true & true);//true
System.out.println(true & false);//false
boolean a = true;
boolean b = false;
System.out.println(a & b);//false
System.out.println(4 > 3 & 10 < 20);//true
System.out.println(true ^ true);//false
短路与: &&
短路或: ||
1.短路:如果左侧已经可以判断最终的结果,则右侧将不再执行。
2.凡是用到了与,或这两个逻辑运算的时候,都非常推荐使用双写。因为双写有可能提高代码的效率。
3. 只有与、或才能双写,亦或,非不能双写。
System.out.println(3 < 2 & 10 < 20);//false ,一个符号左右都会执行
System.out.println(3 < 2 && 10 < 20);//false ,双写,左边如果可以判断最终结果则右侧表达式不执行
int num1 = 100;
System.out.println(3 >10 && ++num1 < 200);//false
System.ot.println(num1);//100 //未执行右侧++num1