目录
一、前言
- 本章主要学习Java流程控制语句里面的基本的顺序结构和分支结构
- 学习目标:熟练应用三种if分支格式和switch结构
二、顺序结构
1.定义
- 顺序结构是程序中最简单的基本流程控制,按照代码先后顺序依次执行。
2.例题
- 如上图一个基本的顺序结构执行语句,输出顺序应该是:开始->A->B->C->结束
编码实现:
public static void main(String[] args)
{
System.out.println("开始");
System.out.println("A");
System.out.println("B");
System.out.println("C");
System.out.println("结束");
}
输出结果:
开始
A
B
C
结束
三、if格式1
1.定义
if(条件表达式)
{
语句体;
}
- 首先计算条件表达式的值
- 为true执行语句,false不执行语句
- 继续执行后续的语句内容
2.例题
- 给定数据a、b、c的值,判断a和b、a和c是否相同?
编码实现:
//定义三个变量
int a=10;
int b=20;
int c=10;
if(a==b)
{
System.out.println("a等于b");
}
if(a==c)
{
System.out.println("a等于c");
}
System.out.println("结束");
输出结果:
a等于c
结束
四、 if格式2
1.定义
if (条件)
{
语句体1;
}
else
{
语句体2;
}
...
- 首先,先判断if条件的值
- 如果为true,执行语句体1
- 否则为false,执行语句2
2.例题 1
- 给定数据a、b的值,判断a是否大于b?
编码实现:
//定义两个变量
int a=10;
int b=20;
if(a>b)
{
System.out.println("a大于b");
}
else
{
System.out.println("a不大于b");
}
System.out.println("结束");
输出结果:
a不大于b
结束
3.例题 2
- 任意给定一个数字,判断奇偶数?
编码实现:
Scanner sc=new Scanner(System.in);//从键盘读入数据
int n=sc.nextInt();
if(n%2==0)
{
System.out.println("数字"+n+"是偶数");
}
else
{
System.out.println("数字"+n+"是奇数");
}
输出结果:
10
数字10是偶数
5
数字5是奇数
4.例题 3
- 需求: 键盘录入用户密码, 如果密码为 666666, 程序输出密码正确,否则输出密码有误
编码实现:
Scanner sc=new Scanner(System.in);//从键盘读入数据
int n=sc.nextInt();
if(n==666666)
{
System.out.println("密码正确,欢迎登录");
}
else
{
System.out.println("密码错误,请重新输入");
}
输出结果:
111111
密码错误,请重新输入
666666
密码正确,欢迎登录
五、if格式3
1.定义
if (条件1)
{
语句体1;
}
else if (条件2)
{
语句体2;
}
else if (条件3)
{
语句体4;
}
. . .
else
{
语句体n+1;
}
先判断条件1的值,如果为true则执行语句体1,分支结束 如果为false则判断条件2的值 如果值为 true 就执行语句体 2 ,分支结束 如果为false则判断条件3的值 ........ 如果没有任何条件为 true ,就执行 else 分支的语句体 n+1
2.例题
- 键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制
编码实现:
Scanner sc=new Scanner(System.in);//从键盘读入数据
int score=sc.nextInt();
if(score<0 || score>100)//分数区间确定,防止出错
{
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("奖励胖揍一顿");
}
输出结果:
101
输入的成绩有误,请重新输入
98
奖励自行车一辆
92
奖励游乐园游玩
88
奖励变形金刚一个
66
奖励胖揍一顿
六、 switch语句
1.定义
switch(表达式)
{
case 值1:
执行代码...;
break;
case 值2:
执行代码...;
break;
…
case 值n-1:
执行代码...;
break;
default:
执行代码n;
}
先执行表达式的值,执行后的结果与switch值匹配 匹配 case 的值为 true 就开始执行 , 遇到break跳出switch分支 如果 case 后的值都不匹配则执行 default 代码
2. 例题1
- 输入一个星期数(1~7),输出对应的星期?
编码实现:
Scanner sc=new Scanner(System.in);//从键盘读入数据
int week=sc.nextInt();
switch (week)
{
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期七");
break;
default:
System.out.println("输入的数据有误");
break;
}
输出结果:
5
星期五
10
输入的数据有误
3. 例题2
- 一年有12个月,分属于春夏秋冬,键盘输入一个月份,用程序实现该月份属于哪一个季节?
编码实现:
Scanner sc=new Scanner(System.in);//从键盘读入数据
int month=sc.nextInt();
switch (month)
{
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("输入的月份有误");
break;
}
输出结果:
5
春季
8
夏季
10
秋季
12
冬季
13
输入的月份有误
4. 例题3
- 下面这段代码输入1,输出什么?输入2呢?
Scanner sc=new Scanner(System.in);//从键盘读入数据 int n=sc.nextInt(); switch (n) { case 1: System.out.println("输出1"); case 2: System.out.println("输出2"); break; case 3: System.out.println("输出3"); break; default: System.out.println("输入的月份有误"); break; }
输出结果:
1
输出1
输出2
2
输出2
5.注意事项
- 表达式类型只能是byte、short、int、char、String、 不支持double、float、long
- case给出的值不允许重复,不能是变量。
- break记得写,不然会出现例题3的结果