运算符:
目录
1.算数运算符
2. 赋值运算符
3.自增自减运算符
4.关系运算符
5.逻辑运算符
6.三元运算符
1.算数运算符:
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合Java语句的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式
符号:+(加),-(减),*(乘),/(除),%(取余)
字符的+操作:“A”=65 A-Z是连续的
“a”=97 a-z是连续的
“0”=48 0-48是连续的
算术表达式中包含多个基本数据类型的值的时候,整个算数表达式的类型会自动提升。
提升规则:byte类型,short类型和char类型会被提升到int 类型。
整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
等级顺序:byte,short,char-int-long-float-double
字符串的+操作:当“+”操作中出现字符串时,这个“+”是字符连接符,而不是算术运算。
在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算数运算。当连续进行“+”操作时,从左到右逐个执行。
2. 赋值运算符: 符号:“=”,作用:赋值
符号:“+=”,作用:加后赋值,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.
扩展的赋值运算符隐含了强制类型转换。
3.自增自减运算符:
符号:“++”,作用:自增,变量的值加1.(单独使用时,++i=i++);
(参与操作使用时,int j = i++,j=i; int j = ++i,j=++i)
符号:“--”,作用:自减,变量的值减1.(同理)
自增自减都是单独使用的
4.关系运算符:
符号= =,a= =b,判断a和b的值是否相等,成立为true,不成立为false。
REAQww 符号!=,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。
注意事项:关系运算符的结果都是布尔常量,结果只有true,false。
千万不要把“==”误写成“=”。
5.逻辑运算符:
&&其实就是逻辑运算符。逻辑运算符是用来连接关系表达式的运算符。
逻辑运算符也可以直接连接布尔类型的常量或者变量。
逻辑与&,有false则false,全是true为true。(无论什么情况,左右语句都执行。)
逻辑或|,有true则true,全是false为false。(无论什么情况,左右语句都执行。)
逻辑异或^,相同为false,不同为true。
逻辑非!,!a,结果与a的结果相反。
短路与&&,作用和逻辑与相同,但有短路效果。(左语句为真则执行右语句,左语句为假则不执行右语句。)
短路或||,作用和逻辑或相同,但有短路效果。(左语句为假则执行右语句,左语句为真则不执行右语句。)
6.三元运算符
格式:关系表达式?表达式1:表达式2;
范式:a>b?a:a;
计算规则:首先计算关系表达式的值
如果值为true,表达式1的值为运算结果。
如果值为false,表达式2的值为运算结果。
案例:两只老虎,(比较体重是否相同)
int weight1=180;
int weight2=200;
用三元运算符来判断:(weight1= =weight2)?true:false;
public class OperatorTest01{
public static void main(String[] args){
int weight1=180;
int weight2=200;
boolean b=weight1= =weight2?true:false;
System.out.println(“b:”+b);
案例:三个和尚(比较身高哪个最高)
int height1=150;
int height2=210;
int height3=165;
public class ScannerTest{
public static void main(String[] args){
int height1=150;
int height2=210;
int tempHeight=height1>height2?height1:height2;
int maxHeight=tempHeight>height3?tempHeight:height3;
System.out.println(“maxHeight:”+maxHeight);