day02 javaSE回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtac2hES-1642841699965)(C:\Users\10490\AppData\Roaming\Typora\typora-user-images\image-20220118123619105.png)]
强制类型转:
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
double num1 = 5.5;
int num2 = (int) num1; // 将double类型的num1强制转换为int类型
System.out.println(num2); // 输出5(小数位直接舍弃)
byte b1 = 1;
byte b2 = 2;
//byte b3 = b1 + b2;//运行报错 算数运算符默认为int,int赋值给byte可能损失精度
int i3 = b1 + b2;//int类型
byte b3 = (byte)(b1 + b2);//结果强制类型转换为byte
int num1 = 10;
double num2 = 20;
double num3 = num1 + num2;//使用double接收,因为num1会自动类型转换为double类型
+= 加后赋值 a+=b 将a+b赋值给a
i++ i进行操作后进行自增
++i i先自增后进行操作
short s = 10;
s = s + 10; // 此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度
s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);
int i = 10;
i++; // 单独使用
System.out.println("i:" + i); // i:11
int j = 10;
++j; // 单独使用
System.out.println("j:" + j); // j:11
int x = 10;
int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1
System.out.println("x:" + x + ", y:" + y); // x:11,y:10
int m = 10;
int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1
System.out.println("m:" + m + ", m:" + m); // m:11,m:11
1.三元运算符
关系表达式 ? 表达式1 : 表达式2;
int a = 10;
int b = 20;
int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值
2.数据输入
- 导包
import java.until.Scanner;
2.创建Scanner对象
Scanner sc = new Scanner(System.in);//创建scanner对象,sc表示变量名,其他均可不变
3.接收数据
int i = sc.nextInt();//表示将键盘录入的int数返回
3.循环语句
3.1 switch-春夏秋冬
- 需求需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
- 运行结果:
春:3、4、5
夏:6、7、8
秋:9、10、11
冬:1、2、12
public class Demo1{
public static void main(String[] args){
//键盘录入月份数据,使用变量接收
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
int month = sc.nextInt();
//case穿透
switch(month){
case1:
case2:
case12:
System.out.println("冬季");
break
case3:
case4:
case5:
System.out.println("春季");
break
case6:
case7:
case8:
System.out.println("夏季");
break;
case9:
case10:
case11:
System.out.println("秋季");
break;
default;
System.out.println("你输入的月份有误");
}
}
}
3.2 for循环
public class ForTest01 {
public static void main(String[] args) {
//需求:输出数据1-5
for(int i=1; i<=5; i++) {
System.out.println(i);
}
System.out.println("--------");
//需求:输出数据5-1
for(int i=5; i>=1; i--) {
System.out.println(i);
}
}
}
3.3while循环
public class WhileDemo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
System.out.println("--------");
//while循环实现
int j = 1;
while(j<=5) {
System.out.println("HelloWorld");
j++;
}
}
}
do…while循环
-
执行初始化语句
-
执行循环体
-
执行条件控制语句
-
执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是ture,循环继续执行
-
回到2继续
public class DoWhileDemo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
System.out.println("--------");
//do...while循环实现
int j = 1;
do {
System.out.println("HelloWorld");
j++;
}while(j<=5);
}
}
3.4三种循环的区别
1.三种循环区别
-
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
-
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
2.for循环和while的区别
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
-
死循环(无限循环)的三种格式
- for(;😉{}
- while(ture){}
- do{}while(ture);
3.5跳转控制语句
- 跳转控制语句(break)
- 跳出循环,结束循环
- 跳转控制语句(continue)
- 跳出本次循环,继续下次循环
- 注意:continue只能在循环中使用!
4.Random
-
概述:
- Random类属于Scanner,也是java提供好的API,内部提供了产生随机数的功能
-
使用步骤
-
导入包
import Java.until.Random
-
创建对象
Random r = new Random();
-
产生随机数
int num = r.nextInt();
解释:10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19
import java.util.Random; public class RandomDemo { public static void main(String[] args) { //创建对象 Random r = new Random(); //用循环获取10个随机数 for(int i=0; i<10; i++) { //获取随机数 int number = r.nextInt(10); System.out.println("number:" + number); } //需求:获取一个1-100之间的随机数 int x = r.nextInt(100) + 1; System.out.println(x); } }
//用循环获取10个随机数
for(int i=0; i<10; i++) {
//获取随机数
int number = r.nextInt(10);
System.out.println("number:" + number);
}
//需求:获取一个1-100之间的随机数
int x = r.nextInt(100) + 1;
System.out.println(x);
}
}
```