流程控制
1.1流程控制语句概述
1.2流程控制语句分类
顺序结构分支结构(if,switch)循环结构(for,while,do…while)
1.3顺序结构
最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,大多数代码都是这样执行的
public class OrderDemo{
public static void main(String[] args){
System.out.println("开始");
System.out.println("语句A");
System.out.println("语句B");
System.out.println("语句C");
System.out.println("结束");
}
}
顺序执行流程图:
- if语句
2.1if语句格式1
格式:
if(关系表达式){
语句体
}
执行流程:
首先计算关系表达式的值;如果关系表达式的值为true就执行语句体;如果关系表达式的值为false就不执行语句体;继续执行后面的语句内容
public class IfDemo{
public static void main(String[] args){
System.out.println("开始");
//定义两个变量
int a = 1;
int b = 2;
//判断a,b的值是否相等,如果相等,则输出,a等于b;
if(a == b){
System.out.println("a等于b");
}
//判断a和c的值是否相等,如果相等,则输出,a等于c;
int c = 1;
if(a == c){
System.out.println("a等于c");
}
System.out.println("结束");
}
}
if语句格式1执行流程:
2.2if语句格式2
格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
首先计算关系表达式的值;如果关系表达式的值为true就执行语句体1;如果关系表达式的值为false就执行语句体2;继续执行后面的语句
public class IfDemo02{
public static void main(String[] args){
System.out.println("开始");
//定义两个变量
int a = 10;
int b = 20;
//判断a是否大于b,如果是,输出:a的值大于b。否则输出:a的值不大于b
if(a > b){
System.out.println("a的值大于b");
}else{
System.out.println("a的值不大于b");
}
System.out.println("结束");
}
}
案例:奇偶数
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数
分析:
为了体现任意给出一个整数,采用键盘录入一个数据使用键盘录入功能需要导包
import java.uilt.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接受数据
int number = sc.nextInt();
判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构
if () {
} else {
}
判断是否偶数需要使用取余运算符实现该功能number % 2 == 0根据判定情况,输出对应的内容
if(number % 2 == 0){
System.out.println(number + "是偶数");
} else {
System.out.println(number + "是奇数");
}
import java.util.Scanner;
public class IfTest01{
public static void main(String[] args){
// 为了体现任意给出一个整数,采用键盘录入一个数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
//判断整数是偶数还是奇数要分两种情况进行判断,使用if...else结构
//判断是否偶数需要使用取余运算符实现该功能number % 2 == 0
//根据判定情况,输出对应的内容
if(number % 2 == 0){
System.out.println(number + "是偶数");
} else {
System.out.println(number + "是奇数");
}
}
}
if语句格式2执行流程:
2.3if语句格式3
格式:
if (关系表达式1) {
语句1;
} else if (关系表达式2){
语句2;
}
…
else{
语句体n+1;
}
执行过程:
首先计算关系表达式1的值如果值为true就执行语句体1;如果值为false就计算关系表达式2的值如果值为true就执行语句体2;如果值为false就计算关系表达式3的值…如果没有任何关系表达式为true,就执行语句体n+1
import java.util.Scanner;
public class IfDemo03{
public static void main(String[] args){
System.out.println("开始");
//键盘录取一个星期数(1,2...7),输出对应的星期一,星期二...星期日
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = sc.nextInt();
if(week == 1){
System.out.println("星期一");
}else if(week == 2){
System.out.println("星期二");
}else if(week == 3){
System.out.println("星期三");
}else if(week == 4){
System.out.println("星期四");
}else if(week == 5){
System.out.println("星期五");
}else if(week == 6){
System.out.println("星期六");
}else{
System.out.println("星期日");
}
System.out.println("结束");
}
}
if语句格式3执行流程:
案例: 考试奖励
需求: 小明期末考试,小明爸爸答应他,他考不同的分数,会获得不同的礼物,用程序实现小明获得什么样的礼物,并输出
分析:
小明考试成绩未知,可以使用键盘录入的方式获取值,使用键盘录入功能需要导包,创建对象,接收数据
import java.util.Scanner; Scanner sc = new Scanner(System.in); int score = sc.nextInt();
由于奖品种类较多,属于多种判断,采用if…else…if格式实现为每种判断设置对应的条件
if (score >= 95 && score <= 100) {
}else if (score >= 90 && score <=94){
}else if (score >= 80 && score <=89){
}else{
}
为每种判断设置对应的奖励
System.out.println(“游乐场游玩一次”);
System.out.println(“大餐吃一顿”);
System.out.println(“芭比娃娃玩偶一个”);
System.out.println(“毒打一顿”);
import java.util.Scanner;
public class IfTest02{
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 >= 95 && score <= 100) {
System.out.println("游乐场游玩一次");
} else if (score >= 90 && score <=94){
System.out.println("大餐吃一顿");
} else if (score >= 80 && score <=89){
System.out.println("芭比娃娃玩偶一个");
} else {
System.out.println("毒打一顿");
}
}
}
案例note: 一定要测试正确数据,边界数据,错误数据



