第4章 选择结构程序设计

合集下载

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

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

#include <stdio.h> int main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) 如果 a>b,将a和b对换 , 和 对换 是 、 中的小者 { t=a; a=b; b=t; } a是a、b中的小者 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); return 0; }
if (disc<0) 8<0为假 为假 printf(“has not real roots\n”); else 的值变为-1 的值变为 { p=-b/(2.0*a); p的值变为 的值变为0.71 的值变为 q=sqrt(disc)/(2.0*a); q的值变为 x1=p+q; x1的值变为 的值变为-0.29 的值变为 x2=p-q; x2的值变为 的值变为-1.71 的值变为 printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; }
if (disc<0) printf(“has not real roots\n”); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; 复合语句 }
C语言有两种选择语句: 语言有两种选择语句: 语言有两种选择语句 (1)if语句,实现两个分支的选择结构 语句, 语句 (2)switch语句,实现多分支的选择结构 语句, 语句

04 选择结构程序设计

04 选择结构程序设计
}
程序输出举例: Enter two numbers: 2 2 (用户从键盘输入2 2)
num1=2 num2=2 result=1
4.2 逻辑运算符及逻辑表达式
逻辑运算符用于支持基本逻辑运算。三 种逻辑运算符及其意义,如表4.2.1所示。
表4.2.1
逻辑运算符 !
&& ||
名称 逻辑非 逻辑与 逻辑或
下面给出程序清单:
#include <stdio.h> main() { int value,choice;
printf("Convert : \n");
/*输出菜单*/
printf(" 1: decimal to hexadecimal\n");
printf(" 2: hexadecimal to decimal\n");
printf("Enter a decimal value: "); scanf("%d", &value); printf("%d in hexadecimal is %x\n", value,value); } else if(choice==2) { printf("Enter a hexadecimal value: "); scanf("%x", &value); printf("%x in decimal is %d\n",
例4.3.3 用双分支if语句重新编写例4.3.1的 程序。
可以利用一个分支处理变量a为正数的情 况,如令x=a。用另一个分支初处理变量a为 负数的情况,如令x=−a。最后输出结果。下 面给出程序:

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

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

辑量。
Page 4
4.1 逻辑量
逻辑表达式 1.逻辑运算符 逻辑运算符有以下3种:&&(逻辑与)、||(逻辑或)、!(逻辑非) “&&”和“||”是双目运算符,“!”是单目运算符,逻辑运算的运算对 象是逻辑量。其中“!”的优先级别高于“&&”,“&&”的优先级高于
“||”。“&&”和“||”是左结合运算符,“!”是右结合运算符。
Page 6
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ① “&&”运算的短路规则。 例如:a&&b
当左目a为逻辑假时,有当左目a为逻辑真时,才运算右目b。
Page 7
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ②“||”运算的短路规则。 例如:a||b
逗号运算符高,结合性为右结合。
Page 12
4.2 if语句
条件表达式 2.条件表达式 用条件运算符将运算对象连接起来的符合C语言规则的表达式称为条 件表达式。 条件表达式的运算过程为:先判断第1目逻辑量,如果逻辑量为真,
选取第2目的结果作为整个表达式的值,否则选取第3目结果作为整个
表达式的值。 条件表达式中存在类型的自动转换,条件表达式的值的类型是第2目
立的表达式对待。
Page 14
4.2 if语句
if语句的嵌套 从if语句的格式来看,if( )~else只能解决双分支问题。如果要解决多 分支问题,则需使用if语句的嵌套。 例如多分支函数:
1 x0 y= 0 x 0 1 x 0

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计

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

C语言程序设计:第4章 选择结构程序设计
gt; >= == !=
作用 小于 小于等于 大于 大于等于 等于 不等于
运算数 双目 双目 双目 双目 双目 双目
结合性 左结合 左结合 左结合 左结合 左结合 左结合
优先级 10 10 10 10 9 9
2
例如:
(1) 比较整型变量k大于0,表达式为:k>0 (2) 比较考试成绩score大于等于60,表达式为:score>=60 (3) 比较整型变量k模2等于0,即判断k是否是偶数:k%2==0 (4) 比较字符变量ch的值等于'A',表达式为:ch!='A'
return 0; }
Input 2 integers(a b):100 10<回车> 100,10
Input 2 integers(a b):10 100<回车> 100,10
2.双分支if语句
if (表达式) 语句1 else 语句2
执行过程: 首先先判断表达式的值 若为非0则执行语句1 若为0则执行语句2
if语句的双分支形式,在语法上 视为一条语句。
表达式

语句1

语句2
例4-4:判断整数的奇偶性。从键盘输入一个整数x,根据其奇 偶性输出x是奇数或x是偶数。
Input an integer: 12<回车> 12 is odd number.
#include <stdio.h>
int main()
return 0;
}
例4-5:修改例3-6使用海伦公式计算三角形面积程序的要求,当输入 的三个边长能够构成三角形时,计算面积;否则,输出不能构成三角 形。
思路分析:三角形面积的计算过程与原例题相同,新要求是在“三个 边长能构成三角形”这一条件成立时才进行计算面积,否则直接输出 提示信息。根据数学知识,这一条件可以描述为“任意两个边长之和 大于第三个边长”,输入三个边长a、b、c后,条件可以使用如下的 逻辑表达式描述:

Ch04_选择结构程序设计

Ch04_选择结构程序设计


典型示例
求最大值 成绩等级 求方程解

作业/上机

作业(做在书上)

TP62 习题4:一、二、三 TP65 习题4:2,3,5,6

上机


4.1 关系表达式与逻辑表达式

关系运算符及优先级
4.1 关系表达式与逻辑表达式

关系表达式
用关系运算符将两个操作数(常量、变量或表达式)连 接起来,进行关系运算的式子,称为关系表达式。 例如,假设n1=5,n2=8,n3=10,则:

1)关系表达式n1==n2的值为0。 2)关系表达式n1<=n3的值为1。 3)关系表达式n1+n2>n3的值为1。 4)关系表达式n1== n2>n3的值等为0。

举例
if(a>b) max=a; else max=b;
<==>
max = (a > b) ? a : b
4.4 switch表达式

switch格式
switch (<表达式>) if (<表达式> == <数值1>) { <语句或语句组1>; case <数值1>: else if (<表达式> == <数值2>) [<语句或语句组1>;] <语句或语句组2>; <==> case <数值2>: …… [<语句或语句组2>;] else …… <语句或语句组>; [default: <语句或语句组>;] }

例:设a=4,b=5: !a的值为0 a || b的值为1 4 && 0 || 2的值为1

第4章 选择结构程序设计

第4章 选择结构程序设计
printf("\nthe light is on."); else printf("\nthe light is off."); getch(); }
章节:
C语言程序设计→第4章 选择结构程序设计
练一练
问题:编一程序,从键盘输入一个正整数,判 断它的奇偶性。如果输入的是奇数,输出“奇 数”,如果输入的是偶数,则输出“偶数”。
章节: C语言程序设计→第4章 选择结构程序设计
本章的学习难点
1. 单分支与双分支选择结构程序设计; 2. 多分支选择结构程序设计 ; 3. 条件语句的嵌套。
章节: C语言程序设计→第4章 选择结构程序设计
本章目录
1. 选择结构和条件判断 2. 用if语句实现选择结构 3. 关系运算符和关系表达式 4. 逻辑运算符和逻辑表达式 5. 条件运算符和条件表达式 6. 选择结构的嵌套 7. 用switch语句实现多分支选择结构 8. 选择结构程序综合举例
章节: C语言程序设计→第4章 选择结构程序设计
4.1.2逻辑运算符与逻辑表达式
逻辑运算符
&&
逻辑与(并且)
||
逻辑或(或者)
!
逻辑非
章节:
C语言程序设计→第4章 选择结构程序设计
逻辑运算符
章节: C语言程序设计→第4章 选择结构程序设计
逻辑运算真值表
章节: C语言程序设计→第4章 选择结构程序设计
反数。所以,如果iX<0,则iY= -iX,否则不需要 做什么;
5.输出iX和iY。
章节:
C语言程序设计→第4章 选择结构程序设计
流程图
章节:
C语言程序设计→第4章 选择结构程序设计

第4章选择结构程序设计

第4章选择结构程序设计

第4章选择结构程序设计通过本章实验作业应达目标1.练习并熟练把握if、switch语句利用,实现二路与多路选择结构;本章必需上交作业程序、、、上传至实验一大小写转换【实验目的】熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。

【实验内容】下面程序希望完成大小写字母转换功能。

假设输入一个大写字母,那么转化为小写输出;假设输入小写字母那么转化为大写输出;对其他字母那么原样不变输出。

程序以命名,运行程序,别离输入一次大写、一次小写字母、一次‘#’进行验证。

若是程序有错,请更正。

#include<>void main(){char ch;ch=getchar();if('a'<=ch<='z') ch-=32;if('A'<=ch<='Z') ch+=32;putchar(ch);putchar('\n');}实验二算术运算【实验目的】学习if~else、switch语句的利用。

【实验内容】键盘输入一个算术的运算式子,输出运算结果。

那个地址咱们规定能够接收五个算术运算的符号:+、-、*、/、^(乘方)。

输入这五个符号之外的运算符号那么提示犯错。

程序以命名并上交。

以下图是输入输出的示用意:输入一个加法的算术式:输入一个除法的算术式:输入一个乘方的算术式:求3的平方根:【实验提示】本程序需要从键盘接收一个表达式,依照表达式中的运算符号实现相应的运算并将结果保留下来并输出。

C语言本身是没有乘方运算符的,能够挪用数学函数pow(x,y)求x的y次方。

注意必然要包括<>。

【试探】输入的表达式实质是按多个不同类型的数据来获取数据的。

程序中需要概念多个变量来接收表达式中包括的数据与运算符,并设计相应的输入/输出函数实现。

实验三金额计算【实验目的】学习分析与解决实际问题的能力,综合嵌套利用if~else或switch语句。

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

915145-C语言程序设计-第4章 选择结构程序设计
条目 票务详情 条件表示(关系表达式) age>=65 style==’2’
老年人
票价分类 两日联票
65周岁及以上
选择两日联票
• 常见错误
– 条件表示时,“==” 运算符误写作“=”运算符 – 数值0、1、…、9与数字字符’0’、’1’、…、’9’的混淆
4.2.2 逻辑运算
• • • 逻辑运算符
– 逻辑非(!)、逻辑与(&&)和逻辑或(||)
• 逻辑表达式求值方法
– 在逻辑表达式的求值过程中,按其操作数从左至右的 计算顺序,当某个操作数的值可以确定整个逻辑表达 式的值时,其余的操作数不再计算
4.2.3 短路求值
例如:假如有变量定义为 int x,y,z; 求下列表达式执行后,表达式的值和变量的值
序号
① ② ③ ④ ⑤ ⑥
变量初始值
x=y=z=1; x=2,y=0,z=1; x=y=z=1; x=0,y=1,z=2; x=0,y=1,z=2; x=0,y=1,z=2;
单分支 双分支 多分支 综合决策
– 选择控制结构
• 即根据条件进行判断选择执行相应操作的 问题,也称为分支控制结构 • 一般分为单分支、双分支和多分支三种结 构
• 实现的关键
– 判断条件的合法描述 – 选择操作流程的合理设计
4.1 门票价格问题
表4-1 上海迪士尼主题乐园的门票价格表
平日票
370
4.2 条件的表示
微视频:短路求值示例
4.3 单分支结构
• 问题
– 迪士尼门票规则
• 老年人:65周岁以上 平日票:280元,高峰日票:375元
分析 – 需要对条件(年龄大于等于65)进行判断
如果为真,则享受优惠票价 平日票:280元,高峰日票:375元

第4章 选择结构程序设计

第4章  选择结构程序设计

2. IF语句的嵌套格式ELSEIF 其语法结构为 If〈条件1〉Then [语句列1] ElseIf〈条件2〉Then
[语句列2]
... [Else [其他语句列]] End If
【例4-10】在例4-9中使用带ElseIf的块If语句来计算出优惠价,只 需将其中命令按钮Command1的单击(Click)事件代码改为 Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x < 1000 Then y=x ElseIf x < 2000 Then y = 0.95 * x ElseIf x < 3000 Then y = 0.9 * x ElseIf x < 5000 Then y = 0.85 * x Else y = 0.08 * x End If Text2.Text = y End Sub
4.3.2 使用IIF函数
还可以使用IIf函数来实现一些比较简单的选择结构。IIf函数的 语法结构为 IIf(〈条件表达式〉,〈真部分〉,〈假部分〉) 【例4-6】例4-3中命令按钮Command1的单击(Click)事件代码可 以改为
Private Sub Command1_Click()
Dim x As Single, y As Single x = Val(Text1.Text) y = IIf(x >= 0, 1 + x, 1 – 2 * x) Text2.Text = y
4.4 多分支条件选择语句SELECT CASE
4.4.1 SELECT CASE结构与语法 4.4.2 SELECT CASE结构的应用 4.5 使用计时器控件 4.5.1 设计一个电子表 4.5.2 设计一个计时器 4.5.3 设计一个流动字幕板 4.6 提供简单选择的控件 4.6.1 选项按钮 4.6.2 复选框

第四章----选择结构程序设计PPT课件

第四章----选择结构程序设计PPT课件

if (fabs(disc)<=1e-6) printf(“x1=x2=%7.2f\n”, -b/(2*a));
/*fabs():求绝对值库函数*/ /*输出两个相等的实根*/
else
{ if (disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); /*求出两个不相等的实根*/
逻辑表达式的值也是一个逻辑值(非“真”即“假”)。
2021/4/8
7
2.逻辑量的真假判定──0和非0 C语言用整数“1”表示“逻辑真”、用“0”表示 “逻辑假”。但在判断一个数据的“真”或“假”时, 却以0和非0为根据: 如果为0,则判定为“逻辑假”; 如果为非0,则判定为“逻辑真”。 例如,假设num=12,则: !num的值=0 ,num>=1 && num<=31的值=1 , num || num>31的值=1。
2021/4/8
3
例如,假设num1=3,num2=4,num3=5,则: (1)num1>num2的值=。 (2)(num1>num2)!=num3的值=。 (3)num1<num2<num3的值。 思考题:任意改变num1或num2的值,会影响整 个表达式的值吗?为什么?
(4)(num1<num2)+num3的值=
2021/4/8
4
二、逻辑运算符
关系表达式只能描述单一条件,例如“x>=0”。如果需 要描述“x>=0”、同时“x<10”,就要借助于逻辑表达 式了。
1 逻辑运算及其优先次序
1.逻辑运算符及其运算规则
(1)C语言提供三种逻辑运算符:
&&
逻辑与(相当于“同时”)

计算机二级C语言第4章 选择结构程序设计

计算机二级C语言第4章 选择结构程序设计
在使用时应注意以下两点。
①应当注意if与else的配对关系。原则是else总是与它上面最近的、未
配对的if配对。
②如果if与else的数目不一样,为了避免在if与else配对时出错,建议
读者使用“{}”来限定了内嵌if语句的范围。如下形式的嵌套语句:
if(表达式1)
{if(表达式2)语句1} /*内嵌if*/
这时形成了阶梯形的嵌套if语句,此形式的语句可以用以下语句形式
表示,看起来层次比较分明。
4.4.2 if语句的嵌套
if(表达式1)

语句1

else if(表达式2)
else if(表达式n-1)
语句2
语句n-1
else if(表达式3)
else
语句3
语句n
嵌套选择结构主要用于处理多条件的问题。设计嵌套选择结构时,应
②只在else子句中嵌套if语句,形式如下:
if(表达式1)
语句1
else
if(表达式2) 语句2
else 语句3
③不断在else子句中嵌套if语句就形成多层嵌套,形式如下:
if(表达式1) 语句3
语句1

else
if(表达式n)
if(表达式2) 语句n
语句2
else(表达式n)
else(表达式3) 语句n
case常量表达式2: 语句2

case常量表达式n: 语句n
default:
语句n+1
}
【说明】
①switch后面的表达式必须用圆括号括起来,其取值必须是整型或字
符型。switch语句后面用花括号“{}”括起来的部分称为switch语句体,

第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、执行过程:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图4-2 程序的运行结果 根据程序的运行结果,请将下面程序补充完整并调试。 #include "stdio.h" main()
{ float a,b,c,t; printf("请输入三个数 a,b and c:\n"); scanf ("%f%f%f",&a,&b,&c); printf("输入的三个数为:"); printf ("%6.2f,%6.2f,%6.2f\n",a,b,c); if(a>b) {t=a;a=b;b=t;} if(a>c) ___________________________________ if(b>c) {t=b;b=c;c=t;} printf("排序后的三个数为:"); printf ("%6.2f,%6.2f,%6.2f\n",a,b,c); getch(); } 2.编程实现:根据性别sex和身高tall给某数据分类,如果sex为‘F’,当 tall>=150时,输出A,否则输出B;若sex不为‘F’,当tall>=172时,输出 A,否则输出B。程序的运行结果如图4-3所示。
_________________________________________ else printf("B"); } else { if(tall>=172) printf("A"); else printf("B"); } getch(); }
4.2 switch语句
【学习目标】 (1)掌握switch语句的语句格式与应用 (2)掌握switch语句中break语句的用法
图4-1运行结果 【程序代码】 #include "stdio.h" main() {char gender,ms;
int age; /*接受司机的详细信息*/ printf("\n\n\t司机的详细信息\n\n"); printf("\n\t司机的婚姻状况(y/n):"); scanf("\n%c",&ms); printf("\n\t司机的性别(M/F):"); scanf("%d",&age); /* 多重 if 结构 */ if (ms=='Y'||ms=='y') /*检查司机的婚姻状况*/ printf("\n\t该司机已投保\n"); else if((gender=='M'||gender=='m')&&(age>30)) /*如果未婚,检查是否是30岁以上的男性 */ printf("\n\t该司机已投保\n"); else if((gender=='F'||gender=='f'&&age>25)) /* 检查是否是25岁以上的女性*/ printf("\n\t该司机已投保\n"); else printf("\n\t该司机已投保\n"); getch(); } 【相关知识】 1.选择结构程序设计 选择结构又称分支结构,有二分支或多分支结构。这种结构根据条 件判断结果,选择执行不同的程序分支。选择结构是程序的基本结构之 一,几乎所有程序都包含选择结构。C语言中可以用两种控制语句来实 现程序的分支控制,即if语句和switch语句。用它们均可构成选择结构。 2.单分支选择if语句 单分支选择if语句的形式为: if(表达式)语句; 执行过程,先判断表达式的值,如果成立,则行后面的语句。否则什 么也不执行。 3.双分支选择if语句 双分支选择if语句的形式为: if(表达式)语句l; else 语句2; 这个条件语句的执行过程,先判断表达式的值,如果成立,执行语 句1,如果不成立,执行语句2。
4.多分支选择if语句 多分支选择if语句的形式为: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; ……… else if(表达式n) 语句n; else 语句n+1; 其语句是,依次判断表达式的值,当出现某个值为真时,则执行其对 应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式 均为假,则执行语句n+1。然后继续执行后续程序。 实际上第三种if语句是第二种语句的嵌套形式。我们可以把第一个 判断的else部分看成是一个内嵌语句,它本身是一个语句,而且可以依 次类推,即可写成: if(表达式1) 语句1; else{if(表达式2) 语句2; else{if (表达式3) 语句3; ……… else{if (表达式n) 语句n; else 语句n+1;}…}} 关于这三种形式的语句的使用,有几点请注意: (1)if之后的条件,必须以“(表达式)”的形式出现,即括号不可 少,而表达式可为任意表达式,可以是关系表达式或逻辑表达式,也可 以为其他表达式。 (2)在后两种if语句中,有多个内嵌语句,每个内嵌语句都必须 以“;”结束。 (3)三种形式的if语句中内嵌语句处只能有一个语句。如果要用n个 语句,则必须使用{}将它们组成一个复合语句。 5. if语句的嵌套 在if语句中又内嵌if语句则称为语句的嵌套。前面已说明,多分支选 择if语句本身就可看成为if语句的嵌套形式。其一般形式为: if () if () 语句1; /*内嵌if语句*/ else 语句2; else if 语句3; /*内嵌if语句*/
实例14 switch语句——计算长方形、圆形、和三角形的面 积
【实例任务】 编写一个程序,用于计算长方形、圆形和三角形的面积。根据用户 的选择要能计算相应形状的面积。程序的运行结果如图4-4所示。
图4-4程序运行结果 【程序代码】 #include "stdio.h" #define PI 3.14 main() { float radius,length,breadth,height,base; double area; int choice; printf("\n\t形状的类型\n"); printf("\n\t1.长方形\n"); printf("\t2.圆形\n"); printf("\t3.三角形\n"); printf("\t4.退出\n"); printf("\n\t 请输入选项(1/2/3/4):"); scanf("%d",&choice); switch(choice) { case 1: printf("\n请输入长方形的详细信息"); printf("\n 长为 :");
scanf("%f",&length); printf("\n 宽为 :"); scanf("%f",&breadth); area=length * breadth; printf("\n 该长方形的面积为 %7.2f\n",area); break; case 2: printf("\n请输入圆形的详细信息"); printf("\n 半径为 :"); scanf("%f",&radius); area=PI *radius*radius; printf("\n该圆形的面积为%7.2f\n",area); break; case 3:printf("\n请输入三角形的详细信息"); printf("\n 高为 :"); scanf("%f",&height); printf("\n 底边为 :"); scanf("%f",&base); area=0.5*height*base; printf("\n该三角形为%7.2f\n",area); break; case 4: printf("\n退出程序\n"); break; default:printf("\n 选项错误\n"); } getch(); } 【相关知识】 1.switch语句以及用switch语句和break语句构成的选择结构 switch语句是一种多分支选择结构,语句形式如下: switch(表达式) { case 常量表达式1:语句1; case 常量表达式2:语句2; …… case 常量表达式n:语句n; default :语句n+1;} switch语句是C语言的关键字,switch后面用花括号括起来的部分称 为switch语句体。紧跟在switch 后一对圆括号中的表达式可以是整型表
else 语句4; 在使用内嵌if语句时,要注意if和else的配对,因为if语句的第一种形式 中只有if没有else。C语言在编译源程序时总是将else与它前面最近的if配 对。 6.条件表达式构成的选择结构 C语言另外还提供了一个特殊的运算符——条件运算符,由此构成 的表达式也可以形成简单的选择结构,这种选择结构能以表达式的形式 内嵌在允许出现表达式的地方,使得可以根据不同的条件使用不同的数 据参与运算。它的运算符符号是“?:”。这使C语言提供的唯一的三目 运算符,即要求有三个运算对象。它的表达式形式如下: 表达式1?表达式2:表达式3 条件表达式的运算功能,当“表达式1”的值为非零时,“表达式2”的 值就是整个条件表达式的值;当“表达式1”的值为零时,“表达式3”的值 作为整个条件表达式的值。此运算符优先于赋值运算符,但低于关系运 算符与算术运算符。例如有如下表达式: y=x>10?100:200 首先要求出条件表达式的值,然后赋给y。在条件表达式中,要先 求出x>10的值。若x大于10,取100作为表达式的值并赋予变量y;若x小 于或等于10,则取200作为表达式的值并赋予变量y。 【课堂精练】 1.输入三个实数,按从小到大顺序输出。程序运行结果如图4-2所示。
相关文档
最新文档