循环和随机数
switch语句
格式
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
switch中break的作用
用于结束整个switch语句的执行
switch中default的执行时机
当表达式的值,和case给出的值,都没有匹配成功,将会执行default
switch括号中的表达式可以接收的类型
byte,short,int,char,jdk5开始可以接收枚举,JDK7开始可以接收String
执行流程:
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意:
如果switch中得case,没有对应break的话,则会出现case穿透的现象。
for循环
循环:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,会形成死循环。
for循环格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
格式解释:
-
初始化语句:
用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
-
条件判断语句:
用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
-
循环体语句:
用于表示循环反复执行的内容,简单说就是循环反复执行的事情
-
条件控制语句:
用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
执行流程:
-
执行初始化语句
-
执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
-
执行循环体语句
-
执行条件控制语句
-
回到2.继续
while循环
while循环完整格式:
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
while循环执行流程:
-
执行初始化语句
-
执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
-
执行循环体语句
-
执行条件控制语句
-
回到2.继续
do…while循环
完整格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
-
执行初始化语句
-
执行循环体语句
-
执行条件控制语句
-
执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
-
回到2.继续
结论:
do…while循环,无论条件是否满足,都至少执行一次循环体。
循环细节
三种循环的区别
三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环(无限循环)的三种格式
- for( ; ; ){}
- while(true){}
- do {} while(true);
常用:while(true){}
跳转控制语句
- 跳转控制语句(break)
- 跳出循环,结束循环
- 跳转控制语句(continue)
- 跳过本次循环,继续下次循环
- 注意: continue只能在循环中进行使用!
循环嵌套
循环嵌套概述:
在循环中,继续定义循环
public static void main(String[] args) {
//外循环控制小时的范围,内循环控制分钟的范围
for (int hour = 0; hour < 24; hour++) {
for (int minute = 0; minute < 60; minute++) {
System.out.println(hour + "时" + minute + "分");
}
System.out.println("--------");
}
}
循环嵌套的执行步骤
外循环执行一次,内循环执行一圈
简单理解:整个内循环,就是外循环所控制的循环体,循环体没有执行完,是不会开始下一次循环的。
理解:
请反复理解这句话(整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的)
结论:
外循环执行一次,内循环执行一圈
Random随机数
概述:
Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能
使用步骤:
-
导入包
import java.util.Random;
-
创建对象
Random r = new Random();
-
产生随机数
int num = r.nextInt(10);
解释: 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); } }