第四章 分支结构的C程序设计

合集下载

湖南省C语言(上)教案:第四章分支结构程序设计(高教版).doc

湖南省C语言(上)教案:第四章分支结构程序设计(高教版).doc

第四章分支结构程序设计分支程序设计章节练习题四、选择题1.若x=0,y=3,z=3,以下表达式值为0的是A. !xB.x<y? 1:0C. x%2&&y==zD. y=x||z/32.以下运算符中优先级最低的运算符为 ,优先级最高的为。

A. &&B. !C. !=D. ||E. ?:F. ==3.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的结果为。

A. 4B. 3C. 2D. 14.若w,x,z均为int型变量,则执行以下语句后的输出为。

w=3;z=7;x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",!w>z);printf("%d\n",w&&z);A. 0B. 1C. 0D. 01 1 1 11 1 0 01 1 1 05.分析以下程序, 下列说法正确的是。

main(){ int x=5,a=0,b=3;if(x=a+b) printf("* * * *\n");else printf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #6.分析以下程序, 下列说法正确的是。

main(){ int x=0,a=0,b=0;if(x=a+b) printf("* * * *\n");else printf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #7.分析以下程序, 下列说法正确的是。

C语言程序设计-第四章简单计算器小程序-分支程序设计

C语言程序设计-第四章简单计算器小程序-分支程序设计

P1 逻辑运算符 P2

逻辑运算符 P2
课堂练习: 求下面逻辑表达式的值: 2>1 && 4 && 7<3+!0
值为0
等价于((2>1)&&4)&&(7<(3+(!
1 条件运算符和条件表达式 1.2 逻辑运算—逻辑运算的重要规则
a&&b:当a为0时,不管b为何值,结果为0
课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a && b && (c=a+10,d=100) 逻辑表达式执行后,a,b,c,d的值各为多少?
任务实现效果演示 例题源代码:switchcalculator.c
相关知识 1. switch语句 2. break语句
1 switch多分支选择结构
❖ 尽管用if…else if结构可以实现多分支,注但意当:分常支量较表多达时式,必程须序是结整构型较、复字杂符。型或枚举类型,不能是 实型表达式,每个case关键字后的常量表达式应互不相同
值为0 等价于i==(k>j),值为1
1 条件运算符和条件表达式 1.2 逻辑运算—逻辑运算符与逻辑表达式
&&(逻辑与)、||(逻辑或)、!(逻辑非)(单目)
逻辑表达式的一般形式:
优先级: 1.由低到高: ||→ && → !; 2.多种运算符一起: = →|| →&& →关系运算符 →算术运算符→ !。
【】 简单计算器小程序:由用户输入运算数和四则运算符(+、-、*、/),输出计算结果。
【】

C语言第4章-分支结构.

C语言第4章-分支结构.
❖注意表达式之间的顺序关系 ❖课堂作业:将表达式位置倒过 来后,即低等级先判断,高等级 后判断,完成框图与程序
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§

§
case ‘A’:
§
case ‘a’: ++count ; break ;
§

第四章 结构化程序设计的三种结构

第四章 结构化程序设计的三种结构

第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。

printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。

格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。

(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。

转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。

格式字符串中的普通字符,原样输出。

例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。

2.输出项表输出项表是可选的。

如果要输出的数据不止1个,相邻2个之间用逗号分开。

下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。

c语言运输公司按照以下方法计算运费,c语言程序设计第4章_分支结构.ppt

c语言运输公司按照以下方法计算运费,c语言程序设计第4章_分支结构.ppt

c语⾔运输公司按照以下⽅法计算运费,c语⾔程序设计第4章_分⽀结构.ppt《c语⾔程序设计 第4章_分⽀结构.ppt》由会员分享,可在线阅读,更多相关《c语⾔程序设计 第4章_分⽀结构.ppt(36页珍藏版)》请在⼈⼈⽂库⽹上搜索。

1、C语⾔程序设计教程(第2版),第4章 分⽀结构,第4章 分⽀结构,本章主要内容 1. if语句的基本结构 2.ifelse语句基本结构 3. if语句的嵌套结构 4. switch语句的基本结构 5.程序案例分析,第4章 分⽀结构,顺序结构:程序按照语句的先后顺序进⾏数据处理。

分⽀结构:程序要对问题进⾏判断,根据判断的结果,选择不同的处理⽅式,进⾏不同的操作。

C语⾔⽤于实现分⽀的结构: if结构 switch结构 4.1.1 if语句if语句结构是⼀种常⽤的分⽀结构,是最简单的⼀种单分⽀结构,该结构构成⼀个⼆叉结构。

,if语句的⼀般形式为。

if() 语法功能: 先判断的值,若该值为“真。

2、”, 则:执⾏; 否则:什么也不执⾏。

注意: 1. :⼀般为条件表达式或逻辑表达式。

2. if语句中的⼀般情况下都是以复合语句的形式出现,即⽤⼀对花括号将语句括起来。

如果语句只有⼀条,则可以不需要花括号 3. if结构的流程图 :,4.1 if结构,4.1 if结构,例1:从键盘任意输⼊两个实数a和b,要求a的值总是⼩于或等于b的值,然后输出这两个数a和b的值。

分析:根据题意,要求ab。

⽅案:先输⼊⼀个较⼩的数,赋给变量a,再输⼊⼀个较⼤的数,赋给变量b。

问题:输⼊的限制对⽤户不合理。

如果先输⼊的值较⼤,后输⼊的值较⼩,则结果为ab。

⽅案修正:不论输⼊的⼤⼩顺序怎样,总是会有ab的。

3、结果。

,4.1 if结构,算法的流程图如图所⽰: 其中虚线框为if结构。

程序的难点:交换a,b的值。

程序见:example4_1.c 例2:从键盘输⼊⼀个整数,求该数的绝对值。

第四章 分支结构的C程序设计39页PPT文档

第四章 分支结构的C程序设计39页PPT文档

4.1.3 逻辑表达式
7
熟练掌握关系运算符和逻辑运算符,可以用逻辑表达式表 示一个复杂的条件。例如:判断某年y是否是闰年。y满足二者 之一为闰年:
(1)y能被4整除,但不能被100整除; (2)y能被400整除。 两个条件为或(||)的关系,条件(1)内的两个条件为与 (&&)的关系。判断整除用求余运算%,余数为0,则能整除。 表达式写成: (y % 4= =0 && y % 100 ! = 0 )|| y % 400 = = 0
4.2.1 if语句的简单形式
9
if语句的简单格式 if (表达式) 语句
可为算术、关系、逻辑、赋值 等表达式
内嵌语句,可为:
赋值语句 函数调用语句 控制语句 复合语句 空语句
功能:
– 计算表达式的值,如果是一个非0值(即 逻辑真),就执行内嵌语句,否则(即逻 辑假)跳过内嵌语句,顺序执行后续语句。
逻辑表达式的值也是一个逻辑值(非“真”即“假”)。
逻辑表达式求解,在值已能确定的情况下不一定求到最后。 如:
(1)表达式a && b && c: 当a=0时,表达式的值为0,不必计算判断b、c; 当a=1,b=0时,表达式的值为0,不必计算判断c; 只有a=1,b=1时,才判断c; (2)表达式a || b || c: 当a=1(非0)时,表达式的值为1,不必计算判断b、c; 当a=0时,才判断b,如b=1,则表达式的值为1,不必计算 判断c; 只有a=0,b=0时,才判断c;
C 程序设计
第四章 分支结构的C程序设计
山西大同大学 物电学院
本章主要内容
2
4.1 分支结构中的表达式 4.2 if语句

第04章 分支结构

第04章 分支结构

switch语句
if语句 switch语句
第 4 章
分支结构
算法和流程图
沃思: 程序=数据结构+算法
语句概述 问题的引出 if语句 if语句的嵌套
实际上:程序=算法+数据结构+程序设计方法+ 语言工具和环境
算法:广义地说,为解决一个问题而 采取的方法和步骤。 计算机算法分类:数值运算算法、非 数值运算算法。
第 4 章
分支结构
C语言的语句可以分为五大类: 1. 表达式语句: 表达式的后面加一个分号
语句概述 问题的引出 if语句 if语句的嵌套
⑴ 赋值语句。 ⑵ 自加减运算符构成的表达式语句。 ⑶ 逗号表达式语句 注:有些表达式语句是没有意义的。如: x+y;a>b?a:b;
2. 空语句: 只有一个分号,作为语句结束符 (计算机什么也不做) 3.复合语句:由“{”和“}”把一些变量说明 和 语句组合在一起 ,又称语句块。如:
第 4 章
分支结构
此结构属于顺序结构,程序自上而下执行, 程序中的每一个语句都被执行一次,而且只能
语句概述 问题的引出 if语句 if语句的嵌套
被执行一次。 然而,只有顺序结构,无法编制出更复杂、 功能更强的程序,计算机经常要根据某些条件 进行逻辑判断,以决定进行不同的处理。这种 结构叫选择结构或分支结构。为此,C语言提供 了进行分支判断的语句。 C语言提供两种分支判断语句:
if语句的嵌套
switch语句
5.
第 4 章
分支结构
算法的表示方法: 算法的表示方法:
语句概述 问题的引出
1. 2. 3.
用自然语言表示算法。 用流程图表示算法。 基本流程图符号 用N—S流程图表示算法。 全部算法写在一个矩形框内,没有流程线, 框内还可包含其它的框。 用伪代码表示算法。 介于自然语言和计算机语言之间的文字和符 号来描述算法。 用计算机语言表示算法。 算法的最终实现。

C语言程序设计教程第04章分支结构程序设计

C语言程序设计教程第04章分支结构程序设计

•.

else

语句n+1
n+1
语句3 . . . else 语句
• 以上语句结构,除最后一个else子句 中,均嵌入了if-else语句,此语句结构执 行过程是:从上到下逐一对if后面的表达 式进行运算。当某一个表达式的值为非0 时,就执行紧跟其后的相关子句中的语 句,而后面的其余部分均被跳过。因此 有n个if语句,就有n+1个分支。
4.2 判断条件的描述方法
• 4.2.1 用关系表达式描述判断条件 • 4.2.2 用逻辑表达式描述判断条件
4.3 解决简单的分支问题
• 4.3.1 if语句
• 语句形式:if(表达式)语句 • if语句的执行是:遇到if关键字,首先
计算圆括号中的表达式的值,如果表达 式的值为非0,则执行圆括号其后的语句, 然后执行if语句后面的下一个语句。如果 表达式的值为0,则跳过圆括号后面的语 句,直接执行if语句后面的下一个语句。 if语句执行过程如图4-1所示。
• 条件运算符的优先级高于赋值运算 符,但低于逻辑运算、关系运算和算术 运算符。
• 例如:y = x > 9 ? 100∶200,由于 赋值号的优先级低于条件运算符,因此 先求条件表达式的值,如x>9关系表达式 成立,则条件表达式的值为100;如x>9 不成立,则条件表达式的值为200,然后 将条件表达式的值赋给变量y。
• 4.4.2 使用switch语句实现多重分支
• 除了使用嵌套的if语句,实现多重分 支选择之外,C语言系统还专门提供了一 种多重分支选择语句switch语句。
• switch语句的一般形式为:
• switch (表达式)
• { case 常量表达式1: 语句1

第4章 分支结构程序设计

第4章 分支结构程序设计
第4章 分支结构程序设计
4.1 分支结构的设计思想 4.2 实现分支结构判断条件的构成 4.3 实现分支结构程序设计的语句 4.4 分支结构程序设计举例

4.1 分支结构的设计思想
根据不同的条件,执行不同的程序流程,这就形成了所谓 的“分支”结构。 分支结构程序的设计要考虑两个方面的问题: –判断条件 判断条件是分支结构设计的关键。一个判断条件的结果只 有两种可能:条件成立和条件不成立,并由此决定了程序流程 的走向。 –实现分支结构语句的构成及选择 分支结构程序的设计就是要正确描述判断的条件,并将其 与要实现的具体工作放在分支结构语句中,实现要完成的处理。 。
首页 上一页
4.2 实算符及其优先顺序
表4.1是关系运算符种类、功能及优先级别顺序。 • 关系运算符优先级低于算术运算符,高于赋值运算符 • 关系运算符 >=、<=、==、!=在书写时,不要用空格将 其分开,否则会产生语法错误。
–关系表达式
4.3 实现分支结构程序设计的语句
• if语句
–if语句的简单形式
if(表达式) if(表达式) 语句 语句的执行过程见图4.2: 例4.2
–if语句标准形式
if(表达式) 语句1 if(表达式) 语句1 语句2 else 语句2 语句的执行过程见图4.3: 例4.3 首页 上一页
–if语句的嵌套形式
例4.5
– 关于Switch结构的注意事项:
• switch后表达式的类型,一般为整型、字符型或枚举 类型。 • 每个case后面常量表达式的值必须互不相同。 • 把default放在最后是一种良好的程序设计习惯。 • 多个case可共有一组执行语句。 • case后常量表达式仅起语句标号的作用,并不进行条 件判断。 • switch语句中仅需执行一个分支时,须在该case后面 的语句中加上break语句,让其跳出switch结构。 • 当case后包含多条执行语句时,可以不用花括号括起 来,系统会自动识别并顺序执行所有语句。 上一页

第四章 选择(分支)结构程序设计

第四章 选择(分支)结构程序设计
4.2.2 逻辑表达式 掌握C语言的关系运算符和逻辑运算符后,可以
用一个逻辑表达式来表示一个复杂的条件。
例如:判断某一年是否闰年。 闰年:能被4整除,但不能被100整除;或能被 400整除。
(year%4==0&&year%100!=0)||year%400==0
表达式为“真”,闰年条件成立,是闰年,否则 非 闰年。
复合语句的形式:
{ 语句1; 语句2; 语句3; ……
}
4.3 if语句
4.3.1 if语句三种形式
复合语句在选择结构,循环结构中经常用到。 我们在逻辑上把复合语句看成是一条语句。
4.3 if语句
4.3.1 if语句三种形式
例:要求用户输入一个实数,然后求出这个实数 的绝对值。
4.3 if语句
逻辑运算的真值表:
a b a&&b
a||b
真真 真

真假 假

假真 假

假假 假

a
!a




4.2 逻辑运算符和逻辑表达式
4.2.1 逻辑运算符及其优先顺序
例:逻辑运算举例 a&&b 若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假,反之若a为假,
4.3.1 if语句三种形式
▪ 在C语言中,表达式P的值是非0时,系统均按真 值处理。
例(1) if (‘a’) printf(“ok!”); (2) x=-5; if(x) printf(“ok!”); (3) y=0; if(y==0) printf(“ok!”); if(y) printf(“ok!”);

第4章 C语言选择结构程序设计

第4章  C语言选择结构程序设计

《 C语言程序设计》
流程图
真 (非0) 表达式
假(0)
语句1
语句2
《 C语言程序设计》
例4.1
【例4.1】试用if…else语句编写程序,判断学生成绩 是否合格。
判断方法: ①如果成绩大于等于60,输出及格 ②否则输出成绩不及格
《 C语言程序设计》
4.2 if语句 if语句
C语言中if条件语句有三种结构形式,分别是: if结构(单分支结构) if if-else if-else结构(双分支结构) if-else-if结构 (多分支结构) if-else-if
《 C语言程序设计》
例4.5 设计一个应用程序,判断某一年是否为闰年
判断方法: ①如果该年能被4整除而不能被100整除,则为闰年; ②或者能被400整除也是闰年。 如: 1996年、2000年是闰年 1996年 2000年是闰年
1998年 1900年不是闰年 1998年、1900年不是闰年
逻辑表达式为: year%4==0 && year%100!=0 || year%400==0
4.4 条件运算符和条件表达式
条件运算符: 1、条件运算符:?:是C语言中惟一的一个三 目运算符。 一般形式为: 2、一般形式为: 表达式1 ? 表达式2 : 表达式3 3、操作过程:如果表达式1成立,则表达式2的 操作过程: 值就是此条件表达式的值;否则,表达式3 的值是此条件表达式的值。
《 C语言程序设计》
《 C语言程序设计》
4.2.2 if-else结构 if-else结构
1、格式: if(条件表达式 语句1 条件表达式) if(条件表达式) 语句1; 真 (非0) else 语句2; 语句 ; 语句1 2、执行过程:

第04章分支结构的C程序设计

第04章分支结构的C程序设计
4.1 分支结构中的表达式 • C语言的逻辑值 • 关系表达式(>,<,>=,<=,==,!=)
关系表达式 关系表达式的运算结果(1,0)
• 逻辑表达式(&&,||,!)
1
if 语 句
if语句的简单形式
if(表达式)
表达式 假( 0) 真( 非0)
语句
下一 语句
真 表达式 假 语句
(a)
(b)
图 4.1 if语句执行过程
10
例 4.4 打印a, b两个数中大者。 方法一: 用if~else结构实现:
main( ) { int a, b; scanf(″%d, %d″, &a, &b); if (a>b) printf(″max=%d\n″, a); else printf(″max=%d\n″, b);
}
方法二: 用条件运算符实现:
main( ) { float score; scanf(″%f″, &score); if(score >= 80) if(score>=90) printf(″Very Good\n″); else printf(″Good\n″); else if(score>=60) printf(″Pass\n″); else printf(″Fail\n″);
}
18
错误的写法: main( ) { float score; scanf(″%f″, &score); if (score<60) printf(″Fail\n″); else if(score>=60) printf(″Pass\n″); else if(score>=80) printf(″Good\n″); *无用*/ else printf(″Very Good\n″); /*无用*/

c语言(第四章分支结构程序设计)

c语言(第四章分支结构程序设计)

expression
=0
=0 statement2
c 语 言 程 序 设 计
形式三: 格式: 执行过程:
if ( expr1 ) else if (expr2 ) else if (expr3 ) …... [ else
statement1 statement2 statement3
statementn ]
c 语 言 程 序 设 计
例 求一个数的绝对值
第 四 章 选 择 结 构 程 序 设 计
/*ch4_03.c*/ #include <stdio.h> main() { int x,y; printf("Enter an integer:"); scanf("%d",&x); y=x; if(y<0) y= -y; printf("\ninteger:%d--->absolute value:%d\n",x,y); } 运行:Enter an integer:-12↵ integer:-12--->absolute value :12
c 语 言 程 序 设 计
4.2逻辑运算符和逻辑表达式 • 逻辑运算符 种类: ! (非,not) 逻辑非 && (并且,and) 逻辑与 || (或者,or) 逻辑或 逻辑运算真值表
a 真 真 假 假 b 真 假 真 假 !a 假 假 真 真 !b 假 真 假 真 a&&b 真 假 假 假 a||b 真 真 真 假
第 四 章 选 择 结 构 程 序 设 计

c 语 言 程 序 设 计
关系运算注意: •对浮点数的比较,由于存在误差,因此不能 使用“相等”或“不相等”的判别。但可使 用误差进行判别,如: fabs(表达式)<1e-5

01-分支结构程序设计 PPT

01-分支结构程序设计  PPT
➢例
判断字符是否为字母?是,输出 Yes,否,输出No
分析:字符是不是字母的条件?
方法:根据ASCII码表,字母分两类
大写字母:’A’ ~ ‘Z’ 之间 小写字母:’a’ ~ ’z’ 之间 条件用C语言描述为:
(ch>=’A’&&ch<=‘Z’) || (ch>=’a’&&ch<=‘z’ )
➢ 其应用
if-else
➢ 语法规定
if (条件) { 语句1; ……;}
else { 语句2; ……;}
➢ 执行流程
T
语句1
条件
F
语句2
➢ 说明 条件结果非零时,就认为条件成立,执行对应语句1,……等; 否则,执行条件不成立的对应语句2……等。
5
if-else应用
if (expr1) statement1
else if (expr3) statement3 else statement4
内嵌if
if (expr1)
if (expr2) statement1
else
statement2
else
if (expr3) statement3
else
statement4
必须把这一组语句用{ }括起来组成一个复合语句。
if-else 注意事项
例: #include <stdio.h> void main ( ) { int x = 0; if (x == 0) printf (“x = 0\n”); else printf (“x != 0\n”); }
例: #include <stdio.h> void main ( ) { int x = 0; if (x = 0) printf (“x = 0\n”); else printf (“x != 0\n”); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

23
思考:如果没有,算法和输出如何?
2013-7-22
学习if语句的难点
if ~else 语句的配对 正确用表达式描述条件 例如:当x大于5小于10时令x自增 if (x>5 && x<10) x++; if ( 5<x<10 ) x++;

24
正确判断内嵌语句 例如:if(x<y) { x=x+3; y=y-2; else { x=x-3; y=y+2;
例如:
⑴ if (c<=100) if (c>=50) printf("50<=c<=100\n"); ⑵ if (c<=100) if (c>=50) printf("50<=c<=100\n"); else printf("c<50\n"); else if (c<=150) printf("100<c<=150\n"); else printf("c>150\n");

功能:
– –
依次计算并判断表达式i,为非0时执行后面 的语句,都为0时,执行语句n 无论执行完那个语句分支,都转到后续语句
2013-7-22
else if 语句的算法

14
流程图
Y
表达式1?
N
N … Y 语句m
表达式m ?
语句1
Y 语句2
表达式2?
N 语句n
2013-7-22
else if 语句的算法
2
2013-7-22
重点难点、教学手段及教学课时
3
重点难点:

if语句 switch语句
教学手段: 多媒体CAI课件演示+文本编辑器 板书计算+ TC集成化环境实验 教学课时:2学时
2013-7-22
4.1 分支结构中的表达式
在其它高级语言中,分支结构中的表达式仅指 关系表达式和逻辑表达式,比较简单。而C语言中 要复杂得多,可以是任何有效的表达式,如算术表 达式、赋值表达式、字符表达式、条件表达式,还 可以是任意类型的数据,如整形、实型、字符型、 指针类型等。
输出“even”
2013-7-22
程序:
main( ) { int x; scanf ("%d",&x); if (x%2 != 0) { printf("%d is an odd \n",x) ; if (x%5==0) printf("%d is the times of 5 \n",x) ; } else printf("%d is an even \n",x) ; }
2013-7-22
if语句嵌套的形式
简单if语句的嵌套形式 if (表达式) 可以是各种形式的 if语句 if 语句 双重(或多重)分支if语句的嵌套形式 if (表达式) 如果是简单if语句, if 语句 必须用“{ }”括起 else if 语句 可以是各种形式的

19ห้องสมุดไป่ตู้
if语句
2013-7-22
!((y % 4= =0 && y % 100 ! = 0 )|| y % 400 = = 0 )
2013-7-22
4.1.4 其它形式的表达式
8
C语言分支的表达式比较复杂,因为它可以是任何有效 的表达式。常用的还有: 1. 算术表达式 如if( a * b – 3 * c ) { … },以判断算术表达式‚a*3-3*c”的 值是否为真决定程序流向,而不必写成逻辑表达式‚a*3-3*c = = 1” 的形式。 2. 赋值表达式 用赋值表达式作表达式,清晰度不高,最容易使人‚上当 受骗‛。 例如:‚int a=3,b=5;if(a=b){…}”,这里‚a=b”不是关 系表达式,而是赋值表达式,a为5,表达式取a的值,为真。 3. 字符表达式 如定义‚char c=3;” 则 if (c) {…}、if (‘B’) {…} 使用的都是字符表达式,其值同样是0为假,非0为真。 还有其它形式的表达式,如逗号表达式,其逻辑值的取法 与上述相同。 2013-7-22
2013-7-22
4.1.3 逻辑表达式
所谓逻辑表达式是指:用逻辑运算符将一个或者多个表 达式连接起来,进行逻辑运算的式子。
6
逻辑表达式的值也是一个逻辑值(非‚真‛即‚假‛)。
逻辑表达式求解,在值已能确定的情况下不一定求到最后。 如: (1)表达式a && b && c: 当a=0时,表达式的值为0,不必计算判断b、c; 当a=1,b=0时,表达式的值为0,不必计算判断c; 只有a=1,b=1时,才判断c; (2)表达式a || b || c: 当a=1(非0)时,表达式的值为1,不必计算判断b、c; 当a=0时,才判断b,如b=1,则表达式的值为1,不必计算 判断c; 只有a=0,b=0时,才判断c;
20
与 哪 个 if 配 对 ? ⑶ if (c<=100) if (c>=50) printf("50<=c<=100\n"); else printf("c<50\n")
2013-7-22
再例如:
if(a>b) if(a>c) if(a>d) m=1; else m=2; else m=3; 问题:哪一个 else 和哪一个 if 相匹配?


16


输入:用 getchar 或 scanf 函数 ch是否为大写字母: ch>='A' && ch<='Z' (或 ch>=65 && ch <= 90) 大写字母转换为小写字母: ch=ch+32 输出:用 putchar 或 printf 函数
2013-7-22
程序:
#include "stdio.h" main( ) { char ch; ch=getchar( ); if (ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch ); } 可使用条件表达式代替

15
N-S结构图
表达式1?
T
表达式2? 语句1 T 语句2 …
F
F 表达式m? T F 语句m 语句n

例如:
if (a<0) x= -1 ; else if (a==0 ) x= 0 ; else x=1 ;
2013-7-22
if语句的简单应用
【例4.1】输入一个字符,如果是大写字母, 则将其转换为小写字母输出,否则 直接输出。 思路:
4
2013-7-22
4.1 分支结构中的表达式
4.1.1 C语言中的逻辑值
表达式的值非0,则表示逻辑真;
5
表达式的值为0,则表示逻辑假。 即:只要值不是0就表示真,如1、2、0.5、‘a’,都表示真值 。 值只有是0、‘\0’(字符‘\0’的ASCII值为0)才表 4.1.2 关系表达式 示假。 所谓关系表达式是指:用关系运算符将两个表达式连接 起来,进行关系运算的式子。 关系表达式的值:是逻辑值‚真‛或‚假‛,用1和0表 所以关系表达式的值还可以参与其它种类的运算,例如算 示。 术运算、逻辑运算等。例如,假设num1=3,num2=4,num3=5, 则:num1>num2的值为0;(num1<num2)+num3的值为6。
}
}
2013-7-22
熟悉常用的if 表达式形式
例如有定义:int a,b=0; a等于什么值时,执行b=2 ;语句? if (a==0) b=2; if (a==1) b=2; if (a!=0) b=2; if (a=1) b=2; if (a=0) b=2; if (a) b=2; 等价于 if (!a) b=2; 等价于
21
规则:在嵌套的if~else语句中,else总是与 上面的离它最近的尚未配对的if 配对。
2013-7-22
举例
【例4.3】输入一个数,判断它是奇数还是 偶数,如果是奇数则进一步判断 它是否为5的倍数。
定义变量x 输入x的值 x是奇数 T 输出“odd” x是5的倍数 T F 是5的倍数 F
22

例如:
⑴ if (x>0) m++; else m--; ⑵ if ( ch>= 'a' && ch<= 'z' ) { ch=ch-32 ; printf(" %c\n",ch); } else printf(" %c\n",ch) ;
2013-7-22
4.2.3 else if 语句

13
else if语句一般格式 if (表达式1) 语句1 else if (表达式2) 语句2 …… else if (表达式m) 语句m else 语句 n
C 程序设计
第四章 分支结构的C程序设计
山西大同大学 物电学院
本章主要内容
4.1 分支结构中的表达式 4.2 if语句 4.1.1 if语句的一般形式 4.1.2 if语句的嵌套 4.3 switch语句 4.2.1 switch语句的一般形式 4.2.2 break语句 4.4 分支结构程序设计举例
4.2.1 if语句的简单形式

9
if语句的简单格式 if (表达式) 语句
相关文档
最新文档