第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。

Slides:



Advertisements
Similar presentations
10.2.switch语句.
Advertisements

第6章 基本的程序语句 6.1 基本数据类型及取值范围 6.2 标识符、变量和常量 6.3 基本运算符、表达式及运算的优先级
5 选择结构.
C程序设计 第4章 选择结构程序设计 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第 5 章 流程控制 (一): 條件分支.
第3章 运算符、表达式与语句 本章导读 1、算术运算符和算术表达式 2、关系运算符与关系表达式 3、逻辑运算符与逻辑表达式
第3章 运算符和表达式 3.2 表达式与表达式的 3.1 运算符与运算符的 计算 分类 表达式 --1.算术运算符
第1章 C++简单程序设计 1.1 C++语言概述 1.2 基本数据类型和表达式 1.3 运算符与表达式 1.4 程序的基本控制结构.
第五章 选择结构程序设计 信息管理系.
第4章 选择结构程序设计 二分支选择结构 多分支选择结构 P A B 真 假 k A1 A2 Ai An k=k2 k=k1 k=kn
程序设计基础.
C语言程序设计 第五章 选择结构程序设计.
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
第4章 选择结构程序设计.
Class 2 流程控制-選擇敘述與迴圈.
第五课选择结构 布尔表达式、IF语句 选择结构 2.布尔变量必须预先定义后使用。 第一节 布尔运算 例如:
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
C程序设计.
第3章 C语言的基本语句 和程序结构设计.
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
第5章 Visual Basic控制结构 郭清溥.
走进编程 程序的顺序结构(二).
第4章 选择结构程序设计 4.1 关系表达式和逻辑表达式 关系表达式 1.关系运算符 关系运算符是比较两个操作数大小的符号。
第2章 数据类型与数据运算.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Chap 3 分支结构 3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计.
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
Visual Basic程序设计.
C语言程序设计基础 刘新国.
第二章 Java语言基础.
第二讲 C#程序设计基础(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第四章 选择结构程序设计 计算机科学学院.
C++程序设计 第三章 程序设计初步.
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 第二章 程序的灵魂 -- 算法.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
《计算机应用基础》 第9章 程序设计基础(二).
几种基本语句 条件语句 广州市63中 岑光.
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第4章 选择结构程序设计 要设计选择结构程序,要考虑两个方面的问题:一是在C语言中如何来表示条件,二是在C语言中实现选择结构用什么语句。
第九节 赋值运算符和赋值表达式.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
C语言程序设计 李祥 QQ:
College of Computer Science & Technology
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第四章 选择结构程序设计 计算机科学学院.
学习目标 1、了解基本运算符 2、运算符优先级.
第二章 Java基本语法 讲师:复凡.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第二章 Java基本语法 讲师:复凡.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第四章 分支结构的C程序设计 4.1 if语句 4.2 switch语句 4.3 程序举例.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
第二章 Java基本语法 讲师:复凡.
输入语句 输出语句 赋值语句 条件语句 循环语句
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
2.3 程序的选择结构 条件选择语句和多重选择语句的使用 程序条件选择结构的执行流程 会使用条件语句和多重选择语句编写程序解决简单的应用题.
选择结构又称为分支结构。 在选择结构程序设计中,根据条件的判断情况需要选择不同的语句组执行。 选择结构类型:
多重條件選擇敘述
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
鸡兔同笼(续) ——选择结构.
Java程序设计 第3章 控制语句.
1.2.2条件语句.
编译原理实践 6.程序设计语言PL/0.
Presentation transcript:

第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。

第4章 选择结构程序设计 4.1 关系运算符及表达式 4.2 逻辑运算符及表达式 4.3 条件运算符 4.4 单条件选择 if 语句 第4章 选择结构程序设计 4.1 关系运算符及表达式 4.2 逻辑运算符及表达式 4.3 条件运算符 4.4 单条件选择 if 语句 4.5 开关分支 switch 语句

4.1 关系运算符及表达式 1. 关系运算符 关系运算符都是双目运算符,共有如下6种: 第4章 选择结构程序设计 4.1 关系运算符及表达式 关系表达式是由关系运算符连接表达式构成的。 1. 关系运算符 关系运算符都是双目运算符,共有如下6种: >,<,>=,<=,==,!= 2. 关系表达式 由关系运算符组成的表达式,称为关系表达式。例如x>y、(x=5)<=y等。 关系表达式的值是整数0或1,其中0代表逻辑假;1代表逻辑真。

逻辑表达式是由逻辑运算符连接表达式构成的。 第4章 选择结构程序设计 4.2 逻辑运算符及表达式 逻辑表达式是由逻辑运算符连接表达式构成的。 1. 逻辑运算符 C语言中提供了3种逻辑运算符: (1) 单目逻辑运算符:!(逻辑“非”)。 (2) 双目逻辑运算符:&&(逻辑“与”)。 (3) 双目逻辑运算符:||(逻辑“或”)。 其中逻辑“与”&&的优先级大于逻辑“或”||,它们的优先级都小于逻辑“非”!。逻辑运算符具有自左至右的结合性。

第4章 选择结构程序设计 2. 逻辑表达式 由逻辑运算符组成的表达式称为逻辑表达式。 逻辑表达式的结果为1(结果为“真”时)或0(结果为“假“时)。 表达式a和表达式b进行逻辑运算时,其运算规则,见表4-1。

第4章 选择结构程序设计 表4-1 逻辑运算的真值表 a b !a !b a && b a || b 真 假

第4章 选择结构程序设计 3. 短路表达式 在由 && 和 || 运算符组成的逻辑表达式中,只对能确定整个表达式值所需要的最少数目的子表达式进行计算。也就是说,当计算出一个子表达式的值之后便可确定整个逻辑表达式的值时,后面的子表达式就不需要再计算了,整个表达式的值就是该子表达式的值。这种表达式也称为短路表达式。

例如:要判别某年是否为闰年,判定条件是符合下面二者之一者就是闰年: 能被4整除,但不能被100整除; 能被4整除又能被400整除。 上述条件可用逻辑表达式来表示: (year%4==0 && year%100!=0)|| year%400==0 表达式的值为真就是闰年,否则就是非闰年。

4.3 条件运算符 第4章 选择结构程序设计 条件运算符是C语言中唯一的三目运算符,条件表达式的一般格式为: 4.3 条件运算符 条件运算符是C语言中唯一的三目运算符,条件表达式的一般格式为: 表达式1 ? 表达式2 : 表达式3 条件运算符的执行过程是:先求解表达式1,当值为非0(真),则求解表达式2,此时表达式2的值就作为整个条件表达式的值;否则求解表达式3,此时表达式3的值就作为整个条件表达式的值。 条件运算符的优先级高于赋值运算符,但是低于关系运算符和算术运算符。条件运算符的结合性为自右至左。

第4章 选择结构程序设计 4.4 if 语句 单条件选择结构的特点是:所给定的选择条件(它可以是逻辑表达式也可以是关系表达式)的值如果为真,则执行为真时的分支;如果为假则执行为假时的分支。

4.4.1 If 语句的三种形式 if 语句是根据所给定的条件决定执行的操作,是“二选一”的分支结构。If 语句的一般格式为: 第4章 选择结构程序设计 4.4.1 If 语句的三种形式 if 语句是根据所给定的条件决定执行的操作,是“二选一”的分支结构。If 语句的一般格式为: if (表达式) { 语句序列1; } else 语句序列2;

1. if <表达式> 语句 当表达式为真时,执行语句, 表达式为假时跳过语句。 2. If 〈表达式〉 语句1 else 语句2 当表达式为真时,执行语句1,表达式为假时执行语句2。 无论如何,语句1与语句2每次只能有一个被执行。 语句 表达式 假(0) 真(非0) p 真 假 语句 A 真 假 p 真 假 语句1 表达式 语句1 语句2 语句2

else if <表达式m> 语句m else 语句n 其流程图见P69图4.6 只有三个表达式的if…else语句 3. if...else if 语句 if <表达式1> 语句1 else if<表达式2> 语句 2 else if <表达式3> 语句3 : : else if <表达式m> 语句m else 语句n 其流程图见P69图4.6 只有三个表达式的if…else语句 的N-S图见右图 if <表达式1> 语句1 else 语句4 表达式1 表达式2 表达式 3 语句1 语句2 语 句 4 真 假 假

使用条件语句注意: 1. if后面的<表达式 >一般为逻辑表达式或关系表达式,也可为整型 \ 实型 \ 字符型 \ 指针型数据, 如表达式的值为0, 系统按“假”处理, 若为非0 , 按“真”处理 2. 注意语句包含了分号; 3. 三种形式中的“语句”也可以有多个操作语句,此时须用花括号“{ }”将几个语句括起来成为一个复合语句. { }外不需另加 ; 4. Else总是与前面的最靠近它的if语句配对 5. 当if语句中的内嵌语句为赋值语句(且两个分支都给同一个变量赋值)时,可以用条件表达式代替if语句. if(8) x=3; else x=9; 例: if(‘a’) printf(“%d”, ‘a’) ;if(5) printf(“OK”); 是合法的 等价于 x=(8>0? 3:9);

条件分支嵌套就是在一个分支中可以嵌套另一个分支。 单条件选择 if 语句完整的嵌套格式为: if(表达式1) 第4章 选择结构程序设计 4.4.2 if 语句的嵌套 条件分支嵌套就是在一个分支中可以嵌套另一个分支。 单条件选择 if 语句完整的嵌套格式为: if(表达式1) if(表达式2) 语句序列1 ; else 语句序列2 ; else if(表达式3) 语句序列3 ; else 语句序列4 ;

4.5 开关分支switch语句 第4章 选择结构程序设计 C语言提供了switch多路选择语句。格式如下: switch(表达式) { case 常量表达式1 : 语句组1 ; [break]; case 常量表达式2 : 语句组2 ; [break]; … case 常量表达式n : 语句组n ; [break]; default : 语句组n+1 ; }

使用说明: 1. 表达式和常量表达式可为任何类型; 2. 执行过程:当表达式的值为某一常量表达式的值时,就执行此case语句,否则,执行default语句; 3. 各常量表达式的值必须各不相同; 4. 各case 语句出现的顺序可以不同; 5. 各常量表达式的值起标号作用,多个case可以共用一组执行语句; 6. 注意有或没有break语句的效果.

例: 编程实现:根据输入的成绩,打印出成绩的等级,90分以上为A,80-89分为B,70-79分为C…., 算法: 输入成绩score; i= score/10; i= 9, 打印A; i= 8, 打印B; i= 7, 打印C; i= 6, 打印D; i= 5,4,3,2,1,0, 打印E;

main( ) li5-switch1 { int i ,score; scanf(“%d”,&score); i=score/10; switch( i ) {case 9: printf(“A”); case 8: printf(“B”); case 7: printf(“C”); case 6: printf(“D”); case 5: case 4: case 3: case 2: case 1: case 0: printf(“E”); }}

main( ) li5-switch2 { int i ,score; scanf(“%d”,&score); i=score/10; switch( i ) {case 9: printf(“A”); break; case 8: printf(“B”); break; case 7: printf(“C”); break; case 6: printf(“D”); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(“E”); break; }}

自己阅读P77例4.5, P80例4.7 P79例4.6 求ax2+bx+c=0方程的根(见图4.14) #include<math.h> main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf(“%f,%f,%f”,&a,&b,&c); printf(“The equation”); if(fabs(a)<=1e-6) printf(“is not a quatdratic”); else {disc=b*b-4*a*c; if (fabs(disc)<=1e-6) printf(“has two equal roots:%8.4\n”,-b/(2*a));

else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4 and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart);

关系运算符及表达式 逻辑运算符及表达式 条件运算符 单条件选择 if 语句 开关分支 switch 语句 上机中的问题:关系运算符及表达式…