1.流程控制语句分类
1.1顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
1.2分支结构
1.2.1 if语句
格式1:
if (关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
![](https://img-blog.csdnimg.cn/d609be5a15bf4f3f8b5095a3a14fc3d0.png)
格式2:
格式:
if (关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
首先计算关系表达式的值
如果关系表达式的值为true就执行语句体1
如果关系表达式的值为false就执行语句体2
继续执行后面的语句内容
格式:
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程:
首先计算关系表达式1的值
如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
…
如果没有任何关系表达式为true,就执行语句体n+1。
例题 考试奖励:
岳小鹏参加Java考试,他和父亲岳不群达成承诺: 如果: 成绩为100分时,奖励一辆BMW; 成绩为(80,99]时,奖励一台iphone xs max; 当成绩为[60,80]时,奖励一个 iPad; 其它时,什么奖励也没有。 请从键盘输入岳小鹏的期末成绩,并加以判断。
/*小明的考试成绩未知,可以使用键盘录入的方式获取值
使用键盘录入功能需要导包,创建对象,接收数据*/
import java.util.Scanner;
public class KaoShiJiangLi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个分数:");
int score = sc.nextInt();
/*由于奖励种类较多,属于多种判断,采用if...else...if格式实现*/
if (score>100||score<0){
//数据测试:正确数据,边界数据,错误数据
System.out.println("您输入的分数有误");
}else if(score==100){
System.out.println("奖励一辆BMW");
}
else if(score>80 && score<=99){
System.out.println("奖励一台iphone xs max");
}else if(score>=60 && score<=80){
System.out.println("奖励一个 iPad");
}else {
System.out.println("什么奖励也没有");
}
}
}
运行结果:
1.2.2 switch语句
格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
[break;]
}
格式说明:
表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
case:后面跟的是要和表达式进行比较的值。
break:表示中断,结束的意思,用来结束switch语句。
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
首先计算表达式的值。
依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。
2.1循环结构
2.1.1 for语句
循环结构的组成:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
循环结构对应的语法:
初始化语句: 这里可以是一条或者多条语句,这些语句可以完成一些初始化操作
条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如:a<3
循环体语句: 这里可以是任意语句,这些语句将反复执行
条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i--这样的操作
格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
2.2while循环语句
格式:
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
执行流程:
如果是false,循环结束
如果是true,继续执行
2.3do…while循环语句
格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
如果是false,循环结束
如果是true,继续执行
2.4三种循环总结
三种循环的区别:
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for和while的区别:
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环格式:
for(;;) { }
while(true) { }
do{ }while(true);
while的死循环格式是最常用的
命令提示符窗口中Ctrl+C可以结束死循环
3.跳转控制语句
3.1 跳转控制语句概述
- continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
- break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
4.循环嵌套
4.1 循环嵌套概述
任何语句对外都可以看成是一句话,一句代码;
分支语句中包含分支语句称为分支嵌套;
循环语句中包含循环语句称为循环嵌套。
语句结构:
●顺序语句 以分号结尾,表示一句话的结束
●分支语句 一对大括号表示if的整体结构,整体描述一个完整的if语句
—对大括号表示switch的整体结构,整体描述一个完整的switch语句
●循环语句 一对大括号表示for的整体结构,整体描述一个完整的for语句
一对大括号表示while的整体结构,整体描述一个完整的while语句
do..while以分号结尾,整体描述一个完整的do..while语句
5.Random
5.1Random的作用和使用步骤
作用:用于产生一个随机数
使用步骤:
- 导包
import iaxa..uti.1...Random ;
导包的动作必须出现在类定义的上面
- 创建对象
Random r = new Random ( ) ;
上面这个格式里面,r是变量名,可以变,其他的都不允许变
- 获取随机数
int number = ..nextInt.(10); //获取数据的范围:[0,10)包括o,不包括10
上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变