版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计
目
录目录CONTENTS
关系运算符和关系表达式4.1
逻辑运算符和逻辑表达式4.2
if语句的基本形式4.3
嵌套的if语句4.4
条件运算符和条件表达式4.5
switch语句4.6在C语言中,if语句是最基本的分支控制结构,用于根据条件的“真”或“假”执行不同的代码块,实现程序流程的选择性执行。if语句有三种形式,分别是基本形式(单分支)、if-else形式(双分支)、if-elseif-else形式(多分支),下面我们先来学习基本形式:格式:if(表达式) 语句其中:表达式一般为逻辑表达式或关系表达式。语句可以是一条简单的语句或多条语句,当为多条语句时,需要用“{}”将这些语句括起来,构成复合语句。if语句的执行过程是:当表达式的值为真(非0)时,执行语句,否则直接执行if语句下面的语句。其执行流程图如图所示。4.3.1if语句基本形式
4.3if语句的形式【例4-2】编程实现,输入两个整数,输出这两个数中较大的数。【问题分析】可定义三个变量(a,b和max)用来存放输入的两个整数和较大数。从键盘输入两个整数,首先假设a是较大数,将a的值赋给max,然后使用if语句进行条件判断,如果a小于b,则b为较大数,即将b的值赋给max。4.3.1if语句基本形式
4.3if语句的形式【参考代码】#include<stdio.h>intmain(){ inta,b,max; /*定义整型变量a,b和max*/ printf("请输入两个整数:"); /*输出屏幕提示*/ scanf("%d
%d",&a,&b); /*从键盘输入a,b的值*/ max=a; /*假设a是较大的数先赋给max*/ if(a<b) /*若a比b小,将b赋给max*/ max=b; printf("两数中较大的数为:%d\n",max); /*输出结果*/ return0; /*函数返回值0*/}4.3.1if语句基本形式
4.3if语句的形式【运行结果】程序运行结果如图所示。4.3.1if语句基本形式
4.3if语句的形式
提示(1)if后面的表达式必须用圆括号括起来;(2)if语句结尾不要加分号;(3)若代码块只有一条语句,可省略{},但建议始终保留以增强可读性;(4)if后面的表达式可以为关系表达式、逻辑表达式、算术表达式等,例如:if(a==0&&a<=10)printf("x=%d,y=%d",x,x-1);if(5)printf("OK!"); /*条件永远为真*/if(a=6)printf(“right”);/*条件永远为真*/if(!a)printf("inputerror!");(5)表达式中一定要区分赋值运算符“=”和关系运算符“==”。例如,if(x==3)判断x的值是否等于3,而if(x=3)则是把3赋值给x,所以表达式的值为3(非0),即为真。
4.3if语句的形式4.3.1if语句基本形式if语句只允许在条件为真时指定要执行代码块,而if-else语句还可在条件为假时指定另一代码块。if-else语句的一般形式如下:if(表达式) 语句1else 语句2if-else语句的执行过程是:当表达式为真(非0)时,执行语句1,否则执行语句2,其执行流程图如图所示。
4.3if语句的基本形式4.3.2if-else形式(双分支)语句形式整个if-else语句可以写在多行上,也可以写在一行上,例如:在一行上,例如:if(x>0) y=1;else y=-1;但是为了程序清晰,提倡写成锯齿形式的,如:if(x>0) y=1;else y=-1;1“语句1”和“语句2”是“内嵌语句”,它们是if-else语句中的一部分。每个内嵌语句的末尾都应有分号。2
4.3if语句的基本形式提示:if-else语句无论写在几行上,都是一个整体,属于同一个语句。需要注意的是,else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。34.3.2if-else形式(双分支)语句形式【例4-3】编程实现,输入两个整数,输出这两个数中较大的数(用if-else语句实现)。【问题分析】本实例的功能与例4-2相同,都是求两数中较大数。但是使用if-else语句进行条件判断,条理更加清晰,我们可以这样思考,如果a大于b,则a为较大数,输出a的值,否则b为较大数,输出b的值。
4.3if语句的基本形式4.3.2if-else形式(双分支)语句形式【参考代码】#include<stdio.h>intmain(){ inta,b; /*定义整型变量a和b*/ printf("请输入两个整数:"); /*输出屏幕提示*/ scanf("%d%d",&a,&b); /*从键盘输入a和b的值*/ if(a>b) /*若a大于b,输出a*/ printf("max=%d\n",a); else /*反之输出b*/ printf("max=%d\n",b); return0; /*函数返回值0*/}
4.3if语句的基本形式4.3.2if-else形式(双分支)语句形式【运行结果】程序运行结果如图所示。
4.3if语句的基本形式4.3.2if-else形式(双分支)语句形式编程时常常需要判定一系列的条件,一旦其中某一个条件为真就立刻停止。这种情况可以采用if-else-if语句,其一般形式如下:if(表达式1) 语句1;elseif(表达式2) 语句2;elseif(表达式3) 语句3;…elseif(表达式n) 语句n;else
语句n+1;执行过程是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句,然后跳到整个if语句之外继续执行程序。如果所有的表达式都为假,则执行最后一个else后的语句,然后继续执行后续程序。其执行流程图如图所示。
4.3if语句的基本形式4.3.3if-elseif-else形式(多分支)语句形式【例4-5】学生成绩可分为百分制和五级制,根据输入的百分制成绩score,转换成相应的五级制成绩后输出,百分制与五级制的对应关系如表所示。百分制五级制百分制五级制90≤score≤100优60≤score<70及格80≤score<90良0≤score<60不及格70≤score<80中score>100或score<0无意义【问题分析】这是一道典型的能够使用if-else-if语句形式的题目,根据对一系列互斥条件的判断来选择执行哪条语句。
4.3if语句的基本形式4.3.3if-elseif-else形式(多分支)语句形式【参考代码】#include<stdio.h>intmain(){
floatscore; printf("请输入成绩:"); /*屏幕提示语*/ scanf("%f",&score); /*输入百分制的分数*/ if(score>100||score<0) /*分值不合理时显示出错信息*/ printf("输入数据无意义\n"); elseif(score>=90) /*这里的else表示0=<score&&score<=100*/ printf("优\n"); elseif(score>=80) /*这里的else表示0=<score&&score<90*/
4.3if语句的基本形式4.3.3if-elseif-else形式(多分支)语句形式printf("良\n"); elseif(score>=70) /*这里的else表示0=<score&&score<80*/ printf("中\n"); elseif(score>=60) /*这里的else表示0=<score&&score<70*/ printf("及格\n"); else /*这里的else表示0=<score&&score<60*/ printf("不及格\n"); return0;}
4.3if语句的基本形式4.3.3if-elseif-else形式(多分支)语句形式【运行结果】程序运行结果如图所示,输入百分制成绩,输出五级制成绩。【程序说明】每个else本身都隐含了一个条件,如第1个else实质上表示条件score>=0&&score<=100成立,此隐含条件与对应的if所给出的条件完全相反。在编程时要善于利用隐含条件,使程序代码清晰简洁。
4.3if语句的基本形式4.3.3if-elseif-else形式(多分支)语句形式在C语言中,if嵌套语句指的是在一个if(或else)语句的代码块内部,再包含另一个(或多个)if语句,用于处理更复杂的多层条件判断。当需要对一个条件先进行整体判断,再在满足该条件的前提下进一步细分判断时,就需要用到嵌套结构。if嵌套的核心是“先外后内”:先判断外层if的条件,只有外层条件成立时,才会执行内层if的判断。基本形式如下:if(外层条件){//外层条件为真时执行if(内层条件1){//内层条件1为真时执行}elseif(内层条件2){//内层条件1为假、内层条件2为真时执行}else{//所有内层条件都为假时执行}}else{//外层条件为假时执行(可选)}
4.4嵌套的if语句在上述格式中,if与else既可成对出现,也可不成对出现,且else总是与最近的且还没配对的if相配对。在书写这种语句时,每个else应与对应的if对齐,形成锯齿形状,这样能够清晰地表示if语句的逻辑关系。例如:if(x>=0) if(x>0) y=1; else y=0;else y=-1;
4.4嵌套的if语句【例4-6】编写程序,实现输入三个整数,输出最大值。【问题分析】本题可以采用if嵌套进行实现,先比较a和b的大小,如果a大于b,就将a与c进行比较,如果a也大于c,那么最大值就为a;否则,最大值为c。如果a小于b,就将b与c进行比较,如果b大于c,那么最大值就为b;否则,最大值为c。程序流程图如图所示。
4.4嵌套的if语句【参考代码】#include<stdio.h>intmain(){inta,b,c,max; /*定义整型变量*/
printf("请输入三个整数,用空格隔开\n"); /*输出提示信息*/
scanf("%d
%d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中共临海市委宣传部下属事业单位公开选聘工作人员1人备考题库附答案
- 2025年12月昆明五华保安服务有限公司招聘(1人)考试备考题库附答案
- 2025年菏泽市第六人民医院公开招聘合同制工作人员笔试(公共基础知识)测试题附答案
- 2025年合肥市医疗器械检验检测中心有限公司社会招聘18人模拟试卷附答案
- 2025广东江门台山市水步镇荔枝塘村招聘后备干部1人备考题库附答案
- 2025年鼓楼区鼓东街道营商环境办(楼宇)公开招聘工作人员备考题库附答案
- 2025广东惠州市公安局惠城分局辅警招聘59人备考题库(第六批)附答案
- 中冶交通2026届校园招聘笔试备考题库及答案解析
- 2026重庆万州区长滩镇非全日制公益性岗位工作人员招聘1人笔试备考题库及答案解析
- 2026福建莆田市城厢区国信产业投资有限公司招聘5人笔试备考题库及答案解析
- 世说新语课件
- 物业管理条例实施细则全文
- 电化学储能技术发展与多元应用
- 2026年安全员之C证(专职安全员)考试题库500道及完整答案【夺冠系列】
- 掩体构筑与伪装课件
- 2026年包头铁道职业技术学院单招职业技能考试题库带答案详解
- GB/T 23446-2025喷涂聚脲防水涂料
- 2026年(马年)学校庆元旦活动方案:骏马踏春启新程多彩活动庆元旦
- 消防箱生产工艺流程
- 部编版初三化学上册期末真题试题含解析及答案
- GB/T 19566-2025旱地糖料甘蔗高产栽培技术规程
评论
0/150
提交评论