流程控制语句
一、流程控制语句
1.1 流程控制语句介绍
- 程序的执行默认就是顺序执行的,当我们需要改变其执行顺序时,就需要使用流程控制语句
- 流程控制语句:通过一些语句,来控制程序的执行流程
- 分类
- 顺序结构
- 分支结构(
if...else
,switch...case
) - 循环结构(
for
,while
,do...while
)
1.2 顺序结构语句
-
顺序结构语句是java程序默认的执行顺序,按照代码的先后顺序依次执行,从上到下,从左到右
-
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
二、if语句
2.1 if语句格式1
if(关系表达式){
语句体;
}
执行流程:
- 首先计算关系表达式的值
- 如果关系表达式的值为true就执行语句体
- 如果关系表达式的值为false就不执行语句体
- 继续执行后面的语句内容
注:如果if语句所控制的语句体是一条语句,大括号可以省略不写(但是不建议)
public class Test5 {
public static void main(String[] args) {
int num;
if (true) num = 10;
if (true) {
num = 20;
}
}
}
2.2 if语句格式2
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
- 首先计算关系表达式的值
- 如果关系表达式的值为true就执行语句1
- 如果关系表达式的值为false就执行语句体2
- 继续执行后面的语句内容
2.3 if语句格式3
if(判断条件1){
语句体1;
}else if(判断条件2){
语句体2;
}
...
else{
语句体n+1
}
执行流程:
- 首先计算判断条件1的值
- 如果值为true就执行语句1;如果值为false就计算判断条件2的值;
- 如果值为true就执行语句2;如果值为false就计算判断条件3的值;
- …
- 如果没有任何判断条件是true,就执行语句体n+1
2.4 案例:考试奖励
需求:键盘录入学生考试成绩,根据成绩程序给出不同的奖励
-
分析:
1、考试成绩未知,可以使用键盘录入的方式获取值使用键盘录入功能需要导包,创建对象,接收数据
2、判断学生录入的成绩是否在合法的范围之内
3、在合法的if块中,判断成绩范围
4、为每种判断设置对应的奖励
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你的成绩:");
int score = sc.nextInt();
if(score >= 0 && score <= 100){
// 合法成绩
if(score >= 90){
System.out.println("奖励");
}else if(score >= 80){
System.out.println("鼓励");
}else{
System.out.println("揍,这个城市多了一个伤心人");
}
}else{
System.out.println("你输入的成绩不合法");
}
}
}
三、switch语句
3.1 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里面的语句体,然后程序结束掉
3.2 案例——减肥计划
需求:键盘录入星期数,显示今天的减肥活动
- 周一:跑步
- 周二:游泳
- 周三:慢走
- 周四:动感单车
- 周五:拳击
- 周六:爬山
- 周日:好好吃一顿
- 分析
- 键盘录入星期数据,使用变量接收
- 多情况判断,采用switch语句实现
- 在不同的case中,输出对应的减肥计划
import java.util.Scanner;
public class SwitchTest {
public static void main(String[] args)