




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 分支程序设计分支程序设计3.1 关系表达式和逻辑表达式3.2 如果语句(if语句)3.3多分支语句(switch语句)3.4 分支程序设计应用实例本章小结n 通常情况下,计算机要根据不同的条件来执行不同的程序段,即判断某个变量或表达式的值,以决定执行哪些语句或跳过哪些语句。比如,根据学生的分数来评定优、良、及格、不及格等级,如60分以下为不及格,90分以上为优等。n 这种结构通常称之为选择结构,因为按不同的条件来确定程序不同的转向,所以也称之为分支结构。3.1 关系表达式和逻辑表达式关系表达式和逻辑表达式n3.3.1 关系运算 关系运算就是对两个数据按它们值的大小进行比较的运算。
2、判断它们是否符合给定条件:1.若符合,则结果为1(即“真”);2.否则结果为0(即“假”)。C语言提供了语言提供了6种关系运算符,如表种关系运算符,如表6-1所示。所示。运算符运算符 含义含义 优先级优先级 小于小于 6 6 = 大于大于 = 大于或等于大于或等于 = 等于等于 7 7 !=!= 不等于不等于 C语言关系运算符的优先级如下语言关系运算符的优先级如下:n关系运算符被分为两组不同的优先级 =、!= 优先级低于 、= n关系运算符的优先级低于算术运算符。n关系运算符的优先级高于赋值运算符。例如:a b + 3 等价于a ( b +3 ) a = b 3 等价于a = ( b 3 )
3、a != b 3 等价于a != ( b 3 )n当相同优先级的关系运算符同时出现时,从左向右进行运算。例如:a != b = c等价于( a != b ) = cn用关系运算符连接两个表达式组成的式子称为关系表达式。下面的关系表达式都是合法的:n ab 1=1 1=0n在C语言中表达式为真时,其值为1;表达式为假时,其值为0.表达式除了值为1时表示真以外,所有非0值也都认为真,只有0被认为是假。如:nx=(32); 值为1 x=(32); 值为03.1.2 逻辑运算逻辑运算nC语言有三种逻辑运算符,如表3-2所示。运算符运算符 含义含义 优先级优先级 结合方向结合方向 ! 逻辑非逻辑非 2
4、2 右右 & 逻辑与逻辑与 1111 左左 | 逻辑或逻辑或 1212 左左 说明:说明: 逻辑运算符中,“&”和“|”是双目运算符,要求有两个运算量;“!”是单目运算符。 下面是C语言逻辑运算符的优先级说明。1) “!”高于 “&” ,“&” 高于 “|” 。2) “!”高于算术运算符,而 “&” 和 “|” 低于关系运算符。 假设A和B是两个表达式,下面对逻辑运算进行说明。1) A & B若A、B均为真,则“A & B”值为真,否则为假。2) A | B若A、B均为假,则“A | B值”为假,否则为真。3)! A若A为真,则 “!A”
5、为假;否则为真。看下面的例子:看下面的例子:1.( 3 5 )值:0只有 & 右面的子表达式为真2.( 3 5 )值:1只要求有一个子表达式为真3.! ( 3 7 & x + y != 20等价于( x 7 ) & ( ( x + y ) != 20 )3。2 如果语句(如果语句(if语句)语句)nif语句通常被称为选择语句或分支语句。n它不再局限于顺序结构单一流程,而是用来对给定条件进行判定,根据其判定结果,从两种操作中选择其一。nif语句用于实现分支结构,C语言提供了二种形式的if语句。3.2.1 if语句语句 n一般形式:if(表达式) 语句n执行过程如图3-1所
6、示。说明:1执行if语句时,先对“表达式”进行求值,如果计算结果非0(为“真”),则执行其后的“语句”,否则跳过其后的“语句”。 2“表达式”的类型可以为任何类型的表达式。表达式语 句真(非0)假(0)例例3-1 输入一个成绩输入一个成绩score,如果成绩大于,如果成绩大于60,则显示则显示“pass”,否则不显示。,否则不显示。main( ) int score; scanf(%d, &score ); if ( score = 60 ) printf(pass n);getch( );功能:先对条件score = 60进行计算,如果成立,就执行 printf语句;否则,就跳过 p
7、rintf语句,转而执行后续语句。运行结果:1. 输入:65 输出: pass2. 若输入:56 ,则无输出3.2.2 if_else语句语句n格式:if ( 表达式 )语句1;else 语句2;n执行过程如图3-2所示。n如果表达式计算为真,则执行语句1;否则执行语句2.表达式语 句 1语 句 2真(非0)假(0)例例3-2:从键盘输入一个正整数,如果该数为:从键盘输入一个正整数,如果该数为6的倍数,就的倍数,就输出一个输出一个“Yes!”,否则输出一个,否则输出一个“No!”。main( ) int x; printf(请输入一个正整数:); scanf(%d, &x ); if
8、( x%6 =0 ) printf(Yes! n ); else printf( No! n ); getch( );运行结果:1. 请输入一个正整数:36Yes!2. 请输入一个正整数:15No!3.2.3 if语句的嵌套语句的嵌套n一般形式是:if(表达式1)语句1;else if(表达式2) 语句2;else if (表达式3)语句3;else 语句4;执行过程如图执行过程如图3-4所示。所示。假表达式1语 句 1表达式2语 句 2表达式3语 句 3语 句 4假假真真真例例3-3 有一个函数,编写程序,输入有一个函数,编写程序,输入x,输出,输出y值。值。 x ( x 1 ) y= 2
9、x 1( 1 x 10 ) 3 x 10( x 10 )main( ) float x, y; printf(请输入x的值:); scanf(%f, &x ); if ( x 1 ) y = x; else if ( x = A & ch = Z ? ch +32 : ch );printf(%c n, ch );3.3多分支语句(多分支语句(switch语句)语句)n一般形式如下:switch ( 表达式 )case 常量表达式1:语句部分1; break;case 常量表达式2:语句部分2; break;case 常量表达式n:语句部分n; break; default:语
10、句部分n+1;switch语句的工作过程是:语句的工作过程是:n以上格式中, 内的语句为可选的。首先对switch语句括号中的表达式进行计算,然后依次与各case中的常量表达式的值比较,一旦匹配成功,则马上执行相应的语句部分,若遇break,结束switch语句;若均不匹配,则执行 default(若有的话)后的语句部分。n当程序执行break语句后,它就使程序流程跳出switch结构,并转而执行switch结构后面的第一条语句。例例3-5:根据考试成绩的等级(根据考试成绩的等级(A、B、C、D),),输出输出“优秀优秀”,“良好良好”等评语。等评语。#include main( ) char
11、 grade; printf(请输入成绩等级(A、B、C、D):);grade = getchar( );switch ( grade )case A: printf(优秀 n);break; case B:printf(良好 n); break; case C: printf(及格 n);break;default:printf(不及格 n);break;getch( );运行结果:请输入成绩等级(A、B、C、D):C及格执行过程执行过程grade优秀良好及格不及格 A B C default 例例3-6:在在switch结构中多个结构中多个case标号共用一组标号共用一组执行语句执行语句#
12、include main( ) char grade; printf(请输入成绩等级(A、B、C、D):); grade = getchar( ); switch ( grade ) case A: case B: case C: printf(及格 n); break; case D: printf (不及格 n); break; default: printf(输入数据错误 n); getch( );运行结果:请输入成绩等级(A、B、C、D):B及格运行结果:请输入成绩等级(A、B、C、D):A及格由此可见,grade的为A、B、C、时,均时,均执行同一组语句。执行同一组语句。3.4 分支
13、程序设计应用实例分支程序设计应用实例n例3-7: 从键盘输入二个整数,输出其中最大者。main( ) int a, b, max; printf(请输入二个整数:); scanf(%d %d, &a, &b ); if ( a b ) max = a; else max = b; printf(二者中最大值为:%d, max ); getch( );运行结果: 1731二者中最大值为:31例例3-8:从键盘输入二个整数,从小到大输出。:从键盘输入二个整数,从小到大输出。n方法:若第一个数较大,两者值互换。main( ) int a, b, tmp; printf(输入二个整数:
14、); scanf(%d %d, &a, &b );/* a = 20, b =15 */ if ( a b ) tmp = a; /* tmp = 20 */ a = b; /* a = 15 */b = tmp; /* b = 20 */ printf(%d, %d, a, b );例例3-9:编写一个程序,判断一个字符是否为英文:编写一个程序,判断一个字符是否为英文字母。字母。例例3-10:由半径为:由半径为 1的圆和半径为的圆和半径为 2的圆所围成的的圆所围成的圆环如图圆环如图3-3所示。所示。编写程序,输入编写程序,输入x,y,若点,若点 (x, y) 在圆环内,则在圆环内,则输出输出TRUE;否则输出;否则输出FALSE。本章小结本章小结nif语句和switch语句用于实现分支结构。分支结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国板型电阻器数据监测研究报告
- 2025年中国束状染色机市场调查研究报告
- 2025年中国无缝小背心市场调查研究报告
- 2025年中国ABS珠数据监测研究报告
- 2025年中国方杆磨尖铅笔市场调查研究报告
- 2025年中国数控高速塑料中空成型机市场调查研究报告
- 2025-2030年中国互联网传媒市场动态监测及投资前景评估报告
- 2025-2030年中国丙烯行业市场发展预测及前景调研分析报告
- 2025-2030年中国MTBE甲基叔丁基醚行业风险评估与发展前景分析报告
- 新疆吐鲁番市鄯善县2025年三年级数学第二学期期末经典模拟试题含解析
- 初中八年级数学课件-最短路径-将军饮马问题
- 信息论与编码期末考试题(全套)
- 医院医学伦理审查委员会章程
- 废弃物管理制度范本
- 房地产销售价格优惠申请表-
- 绿化自动滴灌系统施工方案
- 处理突发事件流程图
- 2023年梅毒诊疗指南
- 医疗卫生系统招聘《医学基础知识》备考题库资料宝典(核心题版)
- 使用说明书仪表8530d技术手册
- 五金工具零售规章制度
评论
0/150
提交评论