运算符
public class ArithmeticoperatorDemo1 {
public static void main(String[] args) {
//在代码中,如果有小数参与计算,结果有可能不精确的
System.out.println(1.1 * 1.1);
}
}
//数值拆分
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
//取个位数
int a = i %10;
//取十位数
int b = i/10%10;
//取百位数
int c = i/100%10;
//打印
System.out.println(c);
}
隐式转换和强制转换
隐式转换:取值范围小的变成取值范围大的数值
byte,short,char三种类型的数据在运算时,都会直接先提上成int,再进行计算
int a = 10;
double b = a
强制转换格式:目标数据类型 变量名 =(目标数据类型)被强转的数据
double a =12.3;
int b =(int)a;
字符串的+操作
当+操作中出现字符串时,这个+是字符串连接符,而不是算术运算符,会将前后数据进行拼接,并产生一个新的字符串
"123"+123 //"123123"
字符的+操作
当字符+字符或者字符+数字时,会把字符通过ascll码表查询到对应的数字再进行计算
自增自减运算符
++和–无论是放在变量的前面还是后面,单独写一行,结果是一样的
int a =10;
a++;
//先用后加
int a =10;
int b = a++;
//先加后用
int a =10;
int b =++a;
赋值运算符
细节:+=,-=,*=,/=,%=底层都隐藏了一个强制类型转换
short s =1;
s+=1;//等同于s=(short)(s+1)
关系运算符
逻辑运算符
public static void main(String[] args) {
//两边都是真,结果才是真
System.out.println(true&true);
//两边都是假,结果才是假
System.out.println(true|false);
//两边相同为false
System.out.println(true^true);
//取反
System.out.println(!true);
}
短路逻辑运算符
当左边的表达式能确定最终结果,那么右边就不会参与计算了
三元表达式
格式:关系表达式?表达式1:表达式2
符
[外链图片转存中…(img-MAM9GrDx-1683125135859)]
当左边的表达式能确定最终结果,那么右边就不会参与计算了
三元表达式
格式:关系表达式?表达式1:表达式2
关系表达式结果为true,取表达式1,反之