算术运算符注意事项
除法:/和%的区别:两个数据做除法,/取得商,%取得余数。整数操作只得到整数,要想得到小数,必须有浮点数的参与。范例:
System.out.println(6.0/4);//输出结果1.5
字符的+操作
字符是可以和数字进行+操作的,是拿了字符在计算机底层对应的数值来进行的计算。如:
‘A’->65
‘a’->9
‘0’->48 //0-9是连续的
字符+整数结果自动转换成整数,所以不能用char类型直接接收
int i=10;
char a='A';
//char r=i+a;错误
//int r=i+a;正确
字符串的+操作
直接拼接
System.out.println("hello"+"world");//结果helloworld
System.out.println(123+"world");//结果123world
System.out.println("hello"+321);//结果hello321
System.out.println("hello"+12+3);//结果依然是hello123,从左到右执行
System.out.println(12+3+"world");//结果是15world,从左到右执行
赋值运算符
注意:+=等扩展的赋值隐含了强制类型转换
short a=20;
a+=10;//虽然10是int类型,但是直接用short类型的a接收不会报错
自增自减运算符
单独使用时,++i和i++没有区别。
参与操作使用时:
int i=10;
int j=i++;
//i先进行赋值,再做++
System.out.println(i);//11
System.out.println(j);//10
int i=10;
int j=++i;
//i先进行++,再做赋值
System.out.println(i);//11
System.out.println(j);//11
关系运算符
返回值为true或false
符号 | 说明 |
---|---|
== | a==b,判断a和b是否相等,成立为 true,不成立为false |
!= | a!=b,判断a和b是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,,判断a是否小于等于b,成立为true,不成立为false |
注意==不要写成赋值=:
int i=10,j=20;
System.out.println(i==j);//输出结果为false
System.out.println(i=j);//输出结果为20,赋值运算符
逻辑运算符
^:异或运算符,两边相同为false,不同为true
int i=10,j=20,k=30;
System.out.println((i>j)^(i>k));//false^false结果为false
System.out.println((i<j)^(i>k));//true^false结果为true
!:逻辑非
System.out.println((i>j));//false
System.out.println(!(i>j));//true
System.out.println(!!(i>j));//false
短路与和短路或
之所以叫短路,意即当左边运算做完已经可以得到结果是true还是false时,不会在做右边运算。
以短路与为例:
System.out.println((i++>100)&(j++>100));//i和j都进行了和100的比较,然后都做了++,输出i和j会得到11和21
System.out.println((i++>100)&&(j++>100));//输出i和j会得到11和20,因为由左边已经可以得到结果false,右边就不会再执行
同理短路或,如果左边为真,右边也不会再执行。
三元运算符
格式: 关系表达式?表达式1:表达式2;
首先计算关系表达式的值,若为true,表达式1的值就是运算结果,若为false,表达式2的值就是运算结果。
范例:
int a=10,b=20;
int max=a>b?a:b;