内容正文:
C 语言程序设计
2023
翻转课堂实用教程
5.3 双分支结构
5.3.1双分支结构知识点
if(<表达式>)
<语句1>
Else
<语句2>
if…else…语句格式:
执行过程:
先判断表达式是否为真,如果为真,那么执行语句1,如果为假,那么执行语句2,语句1和语句2 只能执行其中一个。
流程图
真
表达式
语句2
语句1
假
5.3.2 双分支结构案例分析
案例5-3-1判断密码是否正确
要求:输入一个数字密码,判断密码是否预先设定的一致
案例5-3-1程序代码:
案例5-3-1,运行结果:
算法设计:
1、定义一个整型变量;
2、输入一个密码;
3、如果该密码等于设定密码,则输出“密码正确,登录成功!”,否则输出“密码
错误,无法登录!”。
main()
{
int pwd;
scanf("%d",&pwd);
if(pwd==666888)
printf(“密码正确,登录成功!
")
else
printf("密码错误,无法登录!
");
}
123456↙
密码错误,无法登录!
666888↙
密码正确,登录成功!.
流程图:
如何将“案例2:判断一个三位奇数是否能被15整除”的这道题改为双分支结构?
思考:
5.3.2 双分支结构案例分析
案例5-3-2从接收的字符判断是男是女?
要求:本题要求编写程序,输入一个字符,判断该字符代表“男”还是“女”。男用字符“m”表示,女用字符“f”表示。本体假设输入的字符只有m和f两种情况。
案例5-3-2程序代码:
案例5-3-2,运行结果:
算法设计:
1、定义一个字符型变量;
2、输入一个字符;
3、进行判断,如果是字符=‘m’,输出“男”,否则输出“女”。
main()
{
char sex;
scanf("%d",&sex);
if (sex==’m’)
printf(“男
")
else
printf("女
");
}
m↙
男
f↙
女
5.3.3 双分支结构练习题
练习5.3.1:输入一个整数,判断是奇数还是偶数。
要求:从键盘接收一个整数,并判断它是奇数还是偶数,把结果输出。
练习5.3.2:网吧上网需要验证年龄,年龄大于18岁才可以上网,否则不允许,请编程实现年龄验证。
要求:从键盘接收一个整数,判断是否大于18,如大于,则打印“您可以上网。”,否则打印“您还未成年,不可上网。”
5.4 多分支结构
5.4.1多分支结构知识点
1. if...else if语句格式:
执行过程:
从上到下依次检测判断条件,当某个判断条件成立时,则执行其对应的语句块,然后跳到整个 if else 语句之外继续执行其他代码。如果所有判断条件都不成立,则执行语句块n,然后继续执行后续代码。
流程图
if(表达式1)
语句1
else if(表达式2)
语句2
…
else if(表达式n)
语句n
else
语句n+1
注意:if和 else 的配对问题
1、如果存在if语句后没有else的情况,就出现了if和 else数量不一致的情况;2、else 总是与它前面最近的 if 配对
例如:
if(a!=b) // ①
if(a>b) printf("a>b
"); // ②
else printf("a<b
"); // ③
和谁配对?
5.4.1多分支结构知识点
2. if...else 嵌套语句格式:
执行过程:
如果表达式1为真,继续判断表达式2如果为真,那么执行语句1;如果表达式1为真,表达式2为假,那么执行语句2;如果表达式1为假,继续判断表达式3如果为真,那么执行语句3;如果表达式1为假,表达式3为假,那么执行语句4。
流程图
if(表达式1)
if(表达式2)
语句1
else
语句2
else
if(表达式3)
语句3
else
语句4
5.4.1多分支结构知识点
3. switch语句格式:
执行过程:
先计算表达式的值,然后依次与每一个case中的整型数值进行比较,若有相等的,则从该case开始依次往下执行,若没有相等的,则从default开始往下执行。执行过程中遇到break语句就跳出该swtich语句,否则一直按顺序继续执行下去,也就是会执行其它case 后面的语句, 直到遇到“}”符号才停止。
流程图
switch(表达式)