目录
作者介绍
? 作者简介:KJ.JK,CSDNJava领域新星作者
? 参加获奖过蓝桥杯、中国软件杯云计算、互联网+、创新创业大赛银奖
? 力扣、洛谷、牛客网、Vijos共3000道刷题记录
? 欢迎大家 点赞?? 收藏?? 关注??
前言
今天我们开始学习JavaEE的各种运算符以及类型转换,一步一步变成大牛,月薪过万??????
一、算数运算符
符号 作用 说明
+ 加
- 减
* 乘
/ 除 java中,整数相除结果得到整数,得到小数,必须带有小数类型参与运算
% 取余 获取的是两个数据做除法的余数(例子:1%2,余数是1,因为比2小,所以不能余)
(如果被除数小于除数,它的余数为被除数本身)
代码演示
public class Test {
public static void main(String[] args) {
int a=10;
int b=5;
System.out.println("a+b = " + (a + b));
System.out.println("a-b = " + (a - b));
System.out.println("a*b = " + (a * b));
System.out.println("a/b = " + (a / b));
System.out.println("a%b = " + (a % b));
}
}
数值拆分练习
需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
分析:
* :使用Scanner键盘录入一个三位数
* :个位的计算:数值% 10
123除以10 (商12,余数为3) 12 % 10 (商为1,余数为2)
* :十位的计算:数值/10 % 10
123除以10 (商12,余数为3,整数相除只能得到整数)
12除以10 (商1,余数为2)
* :百位的计算:数值/10/10%10
123 /10/10 % 10 (123/10 得到 12, 12/10 得到1,1 % 10 得到 1)
//先自己思考,答案在最后
二、自增自减运算符
1、自增自减运算符介绍
2、自增自减运算符的注意事项
1. ++ 和 -- 既可以放在变量的后边,也可以放在变量的前边
2. 单独使用的时候,++和--无论是放在变量的前边还是后边,结果是一样的
3. 参与操作的时候
运算符在前:先自增,再操作
运算符在后:先操作,再自增(先操作其他的行为,最后再进行增加)
4. ++、--只能操作变量,不能操作常量
注意事项1演示
public class Test {
public static void main(String[] args) {
int a=10;
a++;
++a;
}
}
注意事项2演示
public class Test {
public static void main(String[] args) {
int a=10;
a++;
System.out.println(a); //11
int b=10;
++b;
System.out.println(b); //11 单独操作的时候放前面放后面结果都一样
}
}
注意事项3演示
public class Test {
public static void main(String[] args) {
int a=10;
int b=++a; //b=11 a=11
System.out.println("b = " + b);
System.out.println("a = " + a); // ++在前:先自增,再操作
System.out.println("------------------");
int a1=10;
int b1=a1++; //b1=10 a1=11
System.out.println("b1 = " + b1);
System.out.println("a1 = " + a1); // ++在后:先操作,再自增(先操作其他的行为,最后再进行增加)
}
}
三、类型转换
1、类型转换介绍
类型转换介绍包括 "隐式转换" 和 "强制转换"
2、隐式转换
??隐式转换介绍
* 把一个"取值范围小"的数值或者变量,赋值给另一个"取值范围大"的变量
* 范例: int a = 10;
double b = a ;
//小到大
??运算中的隐式转换
取值范围小的数据,和数值范围大的数据进行运算,小的会先提升为大的之后,再进行运算
运算中的隐式转换代码演示
public class Test {
public static void main(String[] args) {
int a=10; //这个会在计算机中隐式转换变成double
double b=11.5;
double c=a+b;
System.out.println("c="+c);
}
}
??隐式转换的注意事项
* 把一个取值范围小的数值或者变量,賦值给另一个取值范围大的变量
* 取值范围小的数据,和取值范围大的数据进行运箅,小的会先提升为大的之后,再进行运算
* byte short char 三种数据在运算的时候,都会提升为int,然后再进行运算
* 整个运算的结果看最高的类型
3、强制转换
??强制转换介绍
* 把一个"取值范围大"的数值或者变量,赋值给另一个"取值范围小"的变量 不允许直接赋值,需要加入强制转换
* 格式:目标数据类型 变量名=(目标数据类型)被强转的数据;
* 范例:
double a = 12.3 ;
int b = (int) a ; //b=12
//注意:强转可能会出现精度丢失
//大到小
强转代码演示
public class Test {
public static void main(String[] args) {
double a=15;
int b= (int) a;
System.out.println("b="+b);
}
}
4、面试题例子
面试题1
面试题2
四、赋值运算符
赋值运算符
符号 作用 说明
= 赋值 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
//赋值运算符隐含了强制类型转换
赋值运算符代码演示
public class Test {
public static void main(String[] args) {
int a=60;
int b=20;
System.out.println("a+=b: " + (a += b)); //80
int a1=60;
int b1=20;
System.out.println("a1-=b1 : " + (a1 -= b1)); //40
int a2=60;
int b2=20;
System.out.println("a2*=b2 : " + (a2 *= b2)); //1200
int a3=60;
int b3=20;
System.out.println("a3/=b3 : " + (a3 /= b3)); //3
int a4=60;
int b4=20;
System.out.println("a4%=b4 : " + (a4 %= b4)); //0
}
}
面试题
五、关系运算符
六、逻辑运算符
1、 逻辑运算符
符号 作用 说明
& 逻辑与 并且,有假为假
| 逻辑或 或者,有真为真
^ 逻辑异或 相同为false,不同为true
! 逻辑非 取反
2、 短路逻辑运算符
符号 作用 说明
&& 短路与 作用和 & 相同,但是有短路效果
II 短路或 作用和 | 相同,但是有短路效果
3、逻辑运算符注意事项
? 逻辑与&,无论左边true false,右边都要执行。
短路与&&,如果左边为true,右边执行;如果左边为false,右边不执行。
? 逻辑或|,无论左边true false,右边都要执行。
短路或 || ,如果左边为false,右边执行;如果左边为true,右边不执行。
七、 三元运算符
格式:关系表达式?值1 :值2;
执行流程:
首先计算关系表达式的值
如果值为true,值1就是运算结果
如果值为false,值2就是运算结果
求三个整数的最大值练习
需求:键盘录入三个整数,找出最大值并打印在控制台
//提示用三元运算符
//答案在最后,先自己思考
八、运算符优先级
tips:这个不用记,想要哪个先运算就直接给给小括号就行
??习题答案
数值拆分答案
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
int ge = number% 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
System.out.println(ge);
System.out.println(shi);
System.out.println(bai);
}
}
求三个整数的最大值答案
import java.util.*;
public class JK{
public static void main(String[] args) {
Scanner rd =new Scanner(System.in);
int a=rd.nextInt();
int b=rd.nextInt();
int c=rd.nextInt();
int d=a>b?a:b;
int max=c>d?c:d;
System.out.println(max);
}
}
作者:
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习