java运算符
- 赋值运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 条件运算符(三元运算符)
- 自增自减运算符
- 复合的赋值运算符
- 运算符的优先级
- 运算符的补充
赋值运算符
运算符:
对常量或者变量进行操作的符号。
表达式
用运算符把常量或者变量连接起来的符合java语法的式子叫做表达式。
赋值运算符:=
解释:
把=右边的变量或值赋值给=左边的变量
int a = 5;
int b = a;
System.out.println(b);//5
算术运算符
算数运算符:+ - * / %
int m = 8%3;//取余数
System.out.println(m);//2
//整数跟整数相除结果是整数
System.out.println(3/2);
//小数和整数相除结果是小数
System.out.println(3.0/2);
System.out.println(3/2.0);
//小数和小数相除结果是小数
System.out.println(3.0/2.0);
因为计算机是使用二进制来存储数据的,但是二进制无法精确的表示小数,所以在计算机里面进行小数运算结果不一定精确。因此我们在企业级项目开发里面尽量避免小数运算。
如果非要用到小数运算,我们学到会将到一种保证精确的方法。
System.out.println(0.1+0.7);//结果为0.7999999999999999
案例:
已知一个三位数123,请分别获取该三位数上每一位的数值?
int number =123;
int unit = number%10;
int decade = number/10%10;
int hundreds = number/100;
System.out.println("个位:"+unit);
System.out.println("十位:"+decade);
System.out.println("百位:"+hundreds);
关系运算符
关系运算符用来比较的两边操作数,结果都是boolean的,只有true和false两种结果。
关系运算符:> < == != <= >=
逻辑运算符
- && (与)-- 左右两边同时为真,结果才为真,否则为假。
boolean result1 = false && true;
boolean result2 = true && true;
System.out.println(result1);//false
System.out.println(result2);//true
- || (或)-- 左右两边同时为假,结果为假,否则为真。
boolean result3 = true || false;
boolean result4 = false || false;
System.out.println(result3);//true
System.out.println(result4);//false
- ! (非)-- 取反。真取反为假,假取反为真。
boolean result5 = !false;
boolean result6 = !true;
System.out.println(result5);//true
System.out.println(result6);//false
案例:
定义一个int变量age,变量值为30,判断age的值是否在20和40之间?
int age = 30;
boolean result = age >20 && age <40;
System.out.println(result);//true
注意:
所有的逻辑运算符,结果都是布尔型。
条件运算符(三元运算符)
语法:
变量 = 条件? 表达式1:表达式2;
运算法则: 如果条件为真,结果是表达式1的值;如果条件为假,结果是表达式2的值。
int n = false ? 3:5;
System.out.println(n);//5
int min;
min=5<7?5:7;
System.out.println(min);//5
min=10<7?10:7;
System.out.println(min);//7
自增自减运算符
++:自身变量+1;- -:自身变量-1。
特点:
1.自增(++)自减(- -)运算符是一种特殊的算术运算符,普通的算术运算符需要两个操作数来进行运算(i+j),而自增自减运算符是一个操作数(i++)。
2.++和- -既可以放在变量的左边也可以放在变量的右边,如i++和++i但是两者存在区别。
- 自增自减在前(++a,- -a): 先进行自增或者自减运算,再进行表达式运算。
- 自增自减在后(a++,a- -): 先进行表达式运算,再进行自增或者自减运算 。
int a = 3;//定义一个变量;
int b = ++a;//自增运算
int c = 3;
int d = --c;//自减运算
System.out.println("进行自增运算后的值等于"+b);
System.out.println("进行自减运算后的值等于"+d);
解析:
int b = ++a; 拆分运算过程为: a=a+1=4; b=a=4, 最后结果为b=4,a=4
int d = --c; 拆分运算过程为: c=c-1=2; d=c=2, 最后结果为d=2,c=2
复合的赋值运算符
案例:
int a = 5;
a +=3;//相当于 a = a + 3;
System.out.println(a);
运算符的优先级
运算符的补充
1.数值之间使用+,是做加法运算;字符串跟任意类型的数据相+,是做字符串的拼接,最终的结果是字符串。
//从左向右运算,遇到字符串才开始拼接,字符串后面的数值也全部当作字符串的拼接。
String str1=1+"2"+5+7;
System.out.println(str);//1257
String str2=1+2+"2"+5+7;
System.out.println(str);//3257
2.比较两个变量的值是否相等
- 如果是基本数据类型的变量,使用==
int n=3;
int m=3;
System.out.println(str);
- 如果是引用数据类型的变量,使用equals
String s1="hello";
String s2="hello";
boolean res = s1.equals(s2);
System.out.println(res);