java基础-算术运算符(加减乘除取余),隐式转换、强制转换
一、运算符和表达式的定义
运算符:对字面量或者变量进行操作的符号。
表达式:用运算符把自变量连接起来,符合java语法的式子就可以称为表达式。
例如:
int a=10;
int b=20;
int c=a+b;
其中,+,是运算符,并且是算术运算符;a+b是表达式,由于+是算数运算符,所以这个表达式叫算术表达式。
二、运算符的分类
1、算术运算符
加+、减-、乘*、除/、取余%
当算术运算中数值的数据类型不一致时,就需要进行数据类型转换。数据类型转换又分为隐式转换和强制转换。
隐式转换(数据类型自动提升)
把一个取值范围小的数值,转成取值范围大的数值。
byte<short<int<long<float<double
例如:
int a=10;
double b=a;
其中,b=10.0属于double数据类型
注意:隐式转换的两种提升规则
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
例如:
byte b1=10;
byte b2=10;
数据类型 b3=b1+b2;
其中,b3的数据类型是int。
强制类型转换
把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的,如果一定要这么做就需要假如强制转换。
强制转换格式:目标数据类型 变量名=(目标数据类型)被强转的数据。
例如:
double a=12.2;
int b=(int)a;
注意,如果强转的数据比较大,就会发生错误。
例如:
int a=300;
byte b=(byte)a;
这时,b就会报错,因为byte类型的取值范围是-128~127,300超出了这个范围所以报错。
字符串的“+”操作
当“+”操作出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。作用是将前后的数据进行拼接,并产生一个新的字符串。
例如:
String a="12";
String b="2";
String c=a+b;//c=122
2、自增自减运算符
++(自增)和--(自减)无论是放在变量的前边还是变量的后边,单独写一行的结果是一样的。
但是参与计算时,a++(先用后加)和++a(先加后用)是有区别的。
例如:
int a=10;
int b=a++;//这时b=10,a=11,先用后加,表示先将a=10赋值给b,然后a再进行自增+1;
int c=10;
int d=++a;//这时d=11,c=10,先加后用,表示a先进行自增+1,然后再将自增后的值赋值给d;
3、赋值运算符
符号 | 作用 | 说明 |
= | 赋值 | int a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b赋值给变量a |
-= | 减后赋值 |
a-=b,将a-b赋值给变量a |
*= | 乘后赋值 |
a*=b,将a*b赋值给变量a |
/= | 除后赋值 |
a/=b,将a/b赋值给变量a |
%= | 取余后赋值 |
a%=b,将a%=b赋值给a |
注意:
扩展的赋值运算符,隐含了一个强制类型转换。
例如:
short a=1;
short a+=1;//a=a+1-》右边的a是一个int数据类型,
4、关系(比较)运算符
符号 | 说明 | |
== | 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 |
注意,关系运算符的结果都是boolean类型,要么是true,要么是false。
5、逻辑运算符
符号 | 作用 | 说明 |
& | 与、且 | 并且,两边都为真,结果才为真 |
| | 或 | 或者,两边都为假,结果才能为假 |
^ | 异或 | 相同为false,不同为true |
! | 非,取反 | 相反 |
&& | 短路与 | 两个都为真,结果才是真 |
|| | 短路或 | 只要有一个为真,结果就为真 |
6、三元运算符
三元表达式格式:关系表达式?表达式1:表达式2;
注意:三元运算符的判断值必须被定义。
例如:
//需求:求两数是否相同
int number1=20;
int number2=30;
String s=number1==number2?"相同":"不相同";
其中,变量s代表了关系表达式number1==number2的结果。
三、运算符优先级
小括号高于一切。
作者:×不知该怎么√ 收藏一直进行,学习从未开始!地址https://www.cnblogs.com/hqh2021/p/17344708.html