前言
本章是学习Java语言的第三天内容运算符
有需要补充或需要注意的地方希望大佬指点。
运算符
一、算数运算符
+ | 加 |
---|---|
- | 减 |
* | 乘 |
/ | 除 |
% | 取余/取模 |
如果在计算的时候有小数参与,结果有可能不精确的。
//除法
//整数参与计算,结果只能得到整数
//小数参与计算,结果可能不精确
System.out.println(10/2);//5
System.out.println(10/3);//3
System.out.println(10.0/3);//3.3333333333333335
//取余
System.out.println(10%2);//0
System.out.println(10%3);//1
应用场景
1.可以用取余来判断,a是否可以被b整除
2.可以判断 a是否为偶数
练习
键盘录入一个三位数,将其拆分为个位,十位,百位后,打印出来
公式总结
个位:数值%10
十位:数值/10%10
百位:数值/100%10
public class Test {
public static void main(String[] args) {
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number= sc.nextInt();
System.out.println("个位是"+number%10);
System.out.println("十位是"+number/10%10);
System.out.println("百位是"+number/100%10);
}
}
二、类型转换的分类
隐式转换
取值范围小的转换为取直范围大的
隐式转换(自动类型提升)
byte<short<int<long<float<double(最大 )
两种规则:
1.取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
2.byte short char 三种类型的数据在运算时,都会直接先提升为 int,再进行运算。
强制转换
取值范围大的转换为取值范围小的
格式:目标数据类型 变量名 = (目标变量类型)被强制转的数据;
三、字符串相加
当"+"操作中出现 字符串时,这个"+"是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
"123"+123 //"123123"
连续进行"+"操作时,从左到右逐个执行。
1+99+"哈哈" //"100哈哈"
1+2+"abc"+2+1 //"3abc21"
四、字符相加
byte short char 三种类型的数据在运算 的时候,都会直接先 提升为int再进行运算
当字符+字符 与字符+数字的时候,会按照ascii表来计算
a对应97 A对应的是65
1+'a' //98
'a'+"abc" //"aabc"
注意事项
/和%区别:两个 数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到 小数,必须有浮点数参与运算。
五、自增自减运算符
注意:++和--可以放在变量前面,也可以放在 变量后边。
单独使用:++与--无论放到前面还是变量后边,单独写一行 结果是一样的。
参与计算:
int a = 10;
int b= a++; 先用后加 //b=10
int a = 10;
int b= ++a;先加后用 //b=11
六、赋值运算符
细节:short s = 1;
s += 1;//等同于s = (short)(s+1)
System.out.println(s);//2
七、关系运算符
注意事项
关系运算符的结果都是boolean类型,要么是true,要么是false。
千万别把"=="写成"="。
八、逻辑运算符
九、短路逻辑运算符
注意事项:
&|,无论左边真 还是假,右边都要执行。
&& ||,如果左边能确定 整个表达式的结果,右边 不执行。
&&,左边为false,右边不管是真是假,但整个表达式的结果一定是false。
||:左边true,右边不管是真是假,整个表达式的结果一定是ture。
这两种情况下,右边不执行,提高了效率。
练习
数字6是一个真正伟大的数字,键盘录入两个整数。如果其中一个为6,最终结果输出true。
如果它们的和为6的倍数。最终结果输出true。其他情况都是false。
public class Shuziliu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i = sc.nextInt();
System.out.println("请在输入一个整数:");
int i1 = sc.nextInt();
System.out.println((i==6||i1==6)||((i+i1)%6==0));
}
}
十、三元运算符
格式:关系表达式 ?表达式 1:表达式2;
计算规则:
1.首先计算计算 关系表达式的值。
2.如果值为true,表达式1的值就是运算结果。
3.如果值为false,表达式2的值就是运算结果。
练习
求两个数的较大值
public class Sanyuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字:");
int a = sc.nextInt();
System.out.println("请再次输入一个数字:");
int b = sc.nextInt();
int num = a>b?a:b;
System.out.println("较大数是:"+num);
}
十一、运算符优先级
总结
本章简单介绍了Java运算符,明天学习循环判断。
有不足的地方望大佬指点一二。
听君一席话,胜读十年书。