




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计
分支结构5.1if语句5.1.1if语句格式 5.1.2if语句的嵌套5.2Switch语句
5.3分支结构应用 5.1if语句用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。5.1.1if语句格式1.基本形式if语句的一般格式如下:if(表达式)语句;其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。例5-1使用if语句计算|a-b|。#include<stdio.h>voidmain()
{inta,b,c=0;printf(“输入a和b的值,用逗号分隔:”);
scanf(″%d,%d″,&a,&b);
if(a>b)c=a-b;
if(a<b)c=b-a;printf(“a-b的绝对值:%d\n”,c);
}
运行结果:10,5↙
a-b的绝对值:5例5-1使用if语句计算|a-b|。#include<stdio.h>voidmain()
{inta,b,c=0;printf(“输入a和b的值,用逗号分隔:”);
scanf(″%d,%d″,&a,&b);
if(a>b)c=a-b;
if(a<b)c=b-a;printf(“a-b的绝对值:%d\n”,c);
}运行结果:输入a和b的值,用逗号分隔:10,5↙a-b的绝对值:52.if-else形式
if(表达式)语句1;
else语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。例5-2对例5-1的改写,方法二,用if~else语句实现。#include<stdio.h>voidmain()
{inta,b,c=0;printf(“输入a和b的值,用逗号分隔:”);
scanf(″%d,%d″,&a,&b);
if(a>b)c=a-b;
elsec=b-a;printf(“a-b的绝对值:%d\n”,c);
}运行结果:
输入a和b的值,用逗号分隔:10,5↙a-b的绝对值:5if-else-if形式
有多个分支时,可采用if-else-if语句。
一般形式为:if(表达式1)语句1;
elseif(表达式2)语句2;
elseif(表达式3)语句3;
…
elseif(表达式n)语句n;
else语句n+1;
依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。例5-4编程实现输入某人出生年份,输出此人是“几零后”。#include<stdio.h>voidmain(){intyear;printf("请输入你的出生年份:");scanf(“%d”,&year);if(year<1980)printf("你已过不惑之年了!\n");elseif(year<1990)printf("你是80后!\n");elseif(year<2000)printf("你是90后!\n");elseif(year<2010)printf("你是00后!\n");elseprintf("你是00后!\n");}运行结果:请输入你的出生年份:1993你是90后!请输入你的出生年份:2002你是00后!5.1.2if语句的嵌套
其一般形式可表示如下:
if(表达式)if语句;
或:if(表达式)if语句;elseif语句;
在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,else总是与它前面最近的同层没有匹配的if配对。5.1.2if语句的嵌套
例5-5用if语句的嵌套对例5-4进行改写。
#include<stdio.h>voidmain(){intyear;printf("请输入你的出生年份:");scanf(“%d”,&year);if(year<1990)if(year>=1980)printf("你是80后!\n");elseprintf("你已过不惑之年了!\n");elseif(year<2000)printf("你是90后!\n");elseif(year<2010)printf("你是00后!\n");elseprintf("你是10后!\n");}5.2Switch语句 switch语句的一般形式如下:switch(表达式){
case常量表达式1:语句1;break;
case常量表达式2:语句2;break;
…
case常量表达式n:语句n;break;
default:语句n+1;break;}关于switch语句的几点说明。(1)switch后的表达式可以是任何表达式,其值必须为整型,或字符型,或枚举型。(2)每个case后面的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象。(3)各个case和default的出现次序不影响执行结果。(4)可以让多个case共用一组执行语句。
(5)switch语句允许嵌套使用。表达式的值=常量表达式2的值表达式语句1语句2语句n语句n+1表达式的值=常量表达式1的值表达式的值=常量表达式n的值其他breakbreakbreakbreakswitch多分支结构执行流程图例5-7要求输入一个数字,输出一个对应的英文星期几。#include<stdio.h>voidmain(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("error\n");}}运行结果:inputintegernumber:3↙Wednesday5.3分支结构应用例5-8判别键盘输入字符的类别。程序如下:#include"stdio.h"voidmain(){charc;printf("inputacharacter:");c=getchar();if(c<32)printf("Thisisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thisisadigit\n");elseif(c>='A'&&c<='Z')printf("Thisisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thisisasmallletter\n");elseprintf("Thisisanothercharacter\n");}
本章小结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新型养老服务机构代缴社保服务协议范本
- 2025年新能源发电设备定期检查与维护合同
- 2025年度智能车库租赁及车位租赁与停车资源共享协议
- 2025年度土地承包经营权流转纠纷调解合同模板
- 2025年茶叶种植基地生态保护与修复承包协议
- 2025年度离婚协议书格式规范与编制要求
- 秘书工作计划对企业目标的支持
- 班级跨学科活动的实施路径计划
- 社团活动资源共享方案计划
- 医院文化建设增效方案计划
- 交管12123学法减分题库(含答案)
- 北京市海淀区2024-2025学年八年级上学期期末考试数学试卷(含答案)
- 23G409先张法预应力混凝土管桩
- 《幼儿教育政策与法规》教案-单元5 幼儿的权利与保护
- 《煤矿顶板管理》课件
- 2024年重庆市公务员录用考试《行测》真题及答案解析
- “德能勤绩廉”考核测评表
- 三年级下册口算天天100题(A4打印版)
- 土的野外鉴别及描述
- FUJI可编程序控制器MICREX-F系列(PPT课件)
- 九年级数学上册黄金分割PPT课件
评论
0/150
提交评论