第5章 选择结构程序设计
第5章 选择结构程序设计

通过例5.4和5.5,会注意到:无论是块If单分支结构还是块If双分支结构,均 把程序执行过程分为满足条件的一支和不满足条件的另一支,但在应用中会遇 到类似下面的问题或更复杂的情况,例如,分段函数: x2 1 x>0 y 0 x=0 2 x<0 x 1
自变量x的取值分为三种情况,对应函数y有不同的计算表达式。此类问题 可以使用三个块IF单分支结构完成;也可以使用块IF双分支结构。若采用前 者,读者可仿照例5.4完成;若采用后者,可先把x的取值分为“等于0”和 “不等于0”两种情况,再把“不等于0”这种情况分成“大于0”和“小于0”两种 情况,代码如下: Dim x As Single, y As Single x = Val(InputBox("请输入变量的值")) If x <> 0 Then If x > 0 Then ' 不等于0的情况之一 y=x^2+1 Else ' 不等于0的情况之二 y=x^2-1 End If
2 2
Dim x As Single, y As Single ' 声明x,y为单精度变量 x = Val(InputBox("请输入变量的值")) ' 输入x的值 If x >= 0 Then ' x>=0时计算y y=x^2+1 End If If x < 0 Then ' x<0时计算y y=x^2-1 End If Print "x="; x, "y="; y 该代码段根据x取值的两种情况,分别计算出相应的y值,一个单分支If 结构完成一种情况的计算,因此结构简单,容易理解,但程序不够简练。
真
语句组1
程序设计基础第5章

2
第 五 章 选 择 结 构 程 序 设 计
3. 说明 (1) <条件> 可以是: 条件> 可以是: 关系表达式 布尔表达式 数值表达式: 为 数值表达式:0为False;非0为True ; 为 字符串表达式(只能是数字字符串): 只能是数字字符串 字符串表达式 只能是数字字符串 : "0"为False; 为 ; 非"0"为True 为 (2) 可以没有 可以没有Else部分,这时必须有<语句组 >. 部分, 部分 这时必须有<语句组1>
的值. 【例5-4】按以下公式求分段函数 的值. 】按以下公式求分段函数y的值
第 五 章 选 择 结 构 程 序 设 计 Y=
ex+e-x x<0 1.25 x=0 lgx x>0
X = Val(Text1.Text) Select Case X Case X < 0 Y = Exp(X) + Exp(-X) Case X =0 Y = 1.25 Case X > 0 Y = Log(X) / Log(10) End Select Print "Y="; Y
16
第 五 章 选 择 结 构 程 序 设 计
多分支选择语句的嵌套示例: 多分支选择语句的嵌套示例: Select Case A Case 1 Select Case B Case 0 Print "**0**" Case 1 Print "**1**" End Select Case 2 Print "**2**" End Select
6
第 五 章 选 择 结 构 程 序 设 计
c语言(第五章选择结构) c语言 教学课件

• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
c语言教案第5章

使用嵌套if 语句完成例5-4。 例5-6 使用嵌套 语句完成例 。 #include<stdio.h> int main(){ float g,y; scanf("%f",&g); if(g<50) { if(g<20) y=0.5*g; else y=0.4*g; } else { if(g<100)y=0.3*g; else y=0.2*g; } printf("\n%f",y); }
用字符来代表成绩水平,我们规定A 代表[90-100]、 例5-12 用字符来代表成绩水平,我们规定 代表 、 B 代表[80-90)、C 代表[70-80)、D 代表[60-70)、E 代表[0代表 、 代表 、 代表 、 代表 60)。请编程输入一个成绩 整数 ,输出代表该成绩的字符。 整数), 。请编程输入一个成绩(整数 输出代表该成绩的字符。
单分支if 单分支 语句的流程图
5.1.2 双分支 选择结构 双分支if
if(表达式 语句 表达式) 语句1; 表达式 else 语句2; 语句
双分支if 双分支 语句的流程图
输入一个整数,输出其绝对值 输出其绝对值。 例5-1 输入一个整数 输出其绝对值。
程序1: 程序 : #include<stdio.h> int main(){ int i; scanf("%d",&i); if(i>=0) printf("\n%d",i); else printf("\n%d",-i); } 程序2: 程序 : #include<stdio.h> int main(){ int i; scanf("%d",&i); if(i>=0) printf("\n%d",i); if(i<0) printf("\n%d",-i); }
C语言第5章 选择结构的程序设计PPT教学课件

开始
输入a,b,c
a<b?
F
T a与b交换
a<c?
F
T a与c交换
b<c?
F
T b与c交换
输出a,b,c
2020/12/10
结束
11
2.双分支if语句——if_else语句
格式:
if (<表达式>) 语句1
else
语句2
2020/12/10
12
2. if_else语句
功能:
T 语句1
表达式
F 语句2
2020/12/10
13
3. 多分支if语句
格式:
if (<表达式1>) 语句1 else if (<表达式2>) 语句2 else if (<表达式3>) 语句3
…... else if (<表达式n-1>) 语句n-1 else 语句n
2020/12/10
14
3. 多分支语句
功能: F 表达式1
(4)default一般出现在所有的case之后,也可以出现在 case之前或两个case语句之间。Default可以省略。
2020/12/10
23
5.2 switch语句
例1 用switch语句设计程序,实现输出学生成绩和 等级的功能。 分析:因为分数x为0~100分,则x/10的值为0,1,2, 3,4,5,6,7,8,9,10。
…… case <常量表达式n>:语句n default 语句n+1
}
2020/12/10
21
5.2 switch语句
功能:
首先计算<表达式>的值,然后依次与<常量表达式i> (i=1,2,…,n)比较,若表达式的值与<常量表达式j>相 等,则从<常量表达式j>处开始执行,这里就是执行的 入口,直到switch语句结束。若所有的<常量表达式i> (i=1,2,…,n)的值均不等于表达式的值,则从default处 开始执行。
第五章 选择结构程序设计

第五章选择结构程序设计●教学内容(1)关系运算符与关系表达式;(2)逻辑运算符与逻辑表达式;(3)if语句;(4)switch语句;(5)程序举例;●基本要求理解选择结构在程序设计中的作用,掌握关系运算符、关系表达式、逻辑运算符、逻辑表达式的用法。
重点掌握选择结构在C语言中的实现语句,嵌套的if语句与多分支语句。
一、关系运算符与关系表达式“关系运算”实际上是“比较运算”。
将两个值进行比较,判断比较的结果是否符合给定的条件。
如a>3是一个关系表达式,大于号是一个关系运算符,若a=5;则满足条件,此时,关系表达式的值为真;若a=2,则值为假。
5.1.1关系运算符及其优先次序●6种关系运算符:<,<=,>,>=(优先级相同高),==,!=(优先级相同低)●优先次序:赋——>关——>算(由低到高)5.1.2关系表达式用关系运算符将两个表达式连接起来的式子。
关系表达式的值是一个逻辑值。
即“真”或“假”。
二、逻辑运算符与逻辑表达式5.2.1逻辑运算符及其优先次序●三种逻辑运算符:&& || !(双目运算符,要求有两个运算量)5.2.2逻辑表达式当表达式为非0时值1;为0时值为0。
P90例。
实际上,逻辑运算符两侧的运算对象不但可以是0或1,也可以是任何类型的数在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才能执行该运算符。
如a&&b&&c只有a,b 均为非0时才需要判断c。
三、if语句if语句是用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种操作之一。
5.3.1if语句的三种形式●if(表达式)语句如:if(x>y)printf(“%d”,x);●if(表达式)语句1 else 语句2如:if(x>y)print f(“%d”,x); else printf(“%d”,y);●if(表达式1)语句1else if (表达式2) 语句2else if(表达式3)语句3else 语句n如P93例5.15.3.2if语句的嵌套一般形式:if( )if( )语句1else 语句2elseif( )语句3else 语句4else总是与它上面的最近的还没有配对过的if 配对。
第五章选择结构程序设计

k=k2 A2 ...
k=kn k=ki Ai ... An
5.1 关系运算符和关系表达式
• 关系运算:将两个值进行比较,判断比较的结果是否 符合给定的条件(即关系运算符)。 < • 关系运算符 <=
• 种类:< <= == >= > != • 结合方向:自左向右 • 优先级别:
> >= == !=
逻辑运算符和表达式(2)
优先级:
! (2) 高
! 算术运算符 关系运算符
高
结合方向:
! : 从右向左
&& || 赋值运算符 低
&& (11) || (12) 低
&& : 从左向右 || : 从左向右
例
a<=x && x<=b // (a<=x) && (x<=b) a>b&&x>y // (a>b)&&(x>y) a==b||x==y // (a==b)||(x==y) !a||a>b // (!a)||(a>b)
5.2 逻辑运算符和逻辑表 达式
• 逻辑运算符
• 种类: !(逻辑非) &&(逻辑与) ||(逻辑或) • 逻辑运算真值表
a 真
真 假 假
b 真
假 真 假
!a 假
假 真 真
!b 假
真 假 真
a&&b 真假 Leabharlann 假a||b 真 真 真 假
C语言中,运算量: 逻辑运算结果:
0表示“假”, 非0表示“真” 0表示“假”, 1表示“真” 只能是0或1,不可能是其他数值
C语言课件 第5章

第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章选择结构程序设计第一讲选择结构简介、单分支选择结构、多分支选择结构教学目标1. 了解选择结构。
2. 理解掌握单分支选择结构和多分支选择结构的使用。
教学过程预备知识5.1 选择结构程序的设计所谓选择结构就是由特定的条件决定执行哪条语句的程序结构。
在C#中,提供两种选择语句实现流程的改变:if语句,用于判断特定的条件能否满足,用于单分支选择,也可以通过嵌套实现多分支选择。
switch语句,用于多分支选择。
5.2 单分支选择结构(if语句)if语句是程序设计中基本的选择语句,它根据条件表达式的值选择要执行的后面的内嵌语句序列。
一般用于简单选择,即选择项中有一个或两个分支,语句执行的过程中根据不同的情况进行选择其中一个分支执行。
5.2.1if 语句格式: if(布尔条件表达式)语句序列;功能:根据布尔条件表达式的值进行判断:当该值为真时执行if后的语句序列;当该值为假时什么都不执行。
5.2.2if …else语句格式为: if (布尔条件表达式)内嵌语句序列1;else内嵌语句序列2;根据布尔条件表达式的值进行判断,当该值为真时执行if语句后的语句序列,当为假时,执行else语句后的语句序列。
该结构一般用于两种分支的选择。
下面结合实例介绍if…else语句的使用方法。
【例5-1】某商店为了吸引顾客,采取以下优惠活动:所购商品在1000元以下的,打9折优惠;所购商品多于1000元的,打8折优惠。
试采用if语句实现该优惠。
分析:该问题属于数学分段函数问题,当所购商品总额<1000元时,打折后的商品总额为(所购商品总额*0.9);当所购商品总额>1000时,打折后的商品总额为(所购商品总额*0.8)。
(1) 建立项目在Visual 中,打开“文件”菜单,依次选择“新建→项目”命令,打开“新建项目”对话框,选择“Visual C#项目”,选择“Windows应用程序”输入项目的名称和存放位置。
(2) 设计窗体单击工作区左侧的“工具箱”或单击工具栏上工具箱图标,工具箱将显示在工作区左侧。
添加相应的控件。
(3) 编辑代码选中按钮控件,单击鼠标右键,在弹出的菜单中选择“查看代码”命令,或通过“视图”菜单中的“代码”命令,切换到代码视图。
也可以双击控件直接在事件中添加代码。
代码为:private void button1_Click(object sender, System.EventArgs e){double k,m;k=double.Parse(tCost.Text);if (k<1000){m=k*0.9;}else{m=k*0.8;}pCost.Text=m.ToString( );}(4) 编译、运行程序单击工具栏上的启动按钮,或按〈F5〉键执行程序,显示Windows窗体。
在“请输入所购商品的总金额”文本框中输入相关金额,单击【打折】按钮,完成相应的功能。
【例5-2】编辑框的PasswordChar属性可以隐蔽用户通过键盘输入的字符,常用来编写检查用户口令的程序。
使用选择语句实现该操作。
分析:本题使用编辑框实现命令接受工作,使用if语句实现判断。
采用基本的控件实现如图5-4所示。
代码如下。
private void button1_Click(object sender, System.EventArgs e){if(textBox1.Text=="abc") // 设口令为“abc”label2.Text="欢迎使用本系统!"; // 如果输入正确,显示"欢迎使用本系统!"else // 如果输入不正确label2.Text="对不起,您的口令有误,您无权使用该系统!";}5.2.2 if…else…if语句if (布尔条件表达式1) 语句序列1;else if (布尔条件表达式2) 语句序列2;else if (布尔条件表达式3) 语句序列3;……..else if (布尔条件表达式m) 语句序列m;else 语句序列n;依次判断布尔条件表达式1…m的值:当某个布尔条件表达式的值为真时执行其后的语句序列;当所有布尔条件表达式的值都为假时执行语句序列n。
【例5-3】将百分制成绩转换为五分制成绩。
转换标准如下:90分以上为“优秀”,80分以上为“良”,70分以上为“中”,60分以上为“及格”,60分以下为“不及格”。
程序运行结果如图5-5左图所示。
程序运行时,单击【转换】按钮执行的代码如下:private void button1_Click(object sender, System.EventArgs e){int k =int.Parse(textBox2.Text);if(k>=90)textBox1.Text="优";else if(k>=80)textBox1.Text="良";else if(k>=70)textBox1.Text="中";else if(k>=60)textBox1.Text="及格";else textBox1.Text="不及格";}上例中使用了if语句的嵌套实现,其中因为条件判断后只用一个语句,如“textBox1.Text="良";”,所以,可以省略{ },当存在多条语句时,要使用{ }表示为一个语句块。
5.3多分支选择结构(switch语句)Switch(控制表达式){case常量表达式1:语句序列1;[break;]case常量表达式2:语句序列2;[break;]…….case常量表达式n:语句序列n;[break;][default:语句序列;break;]}1. break语句break语句用于停止贯穿语句的执行。
即在switch语句结构中,break语句用于选择分支的语句运行。
也可使用goto语句实现语句转移,但是,应尽量避免使用这种方法。
2. default标签在switch语句中,常常用到default标签来处理不满足case语句的值,定义default标签可以增强处理相应的异常例5-4:“转换”按钮的单击事件代码如下:int k=int.Parse(textBox1.Text);switch(k/10){case 0:case 1:case 2:case 3:case 4:case 5:textBox2.Text="不及格";break;case 6:textBox2.Text="及格";break;case 7:textBox2.Text="中";break;case 8:textBox2.Text="良";break;case 9:case 10:textBox2.Text="优";break;default:MessageBox.Show("成绩输入有误");break;}【例5-5】某航空公司规定•在旅游的旺季7~9月份,如果订票数超过20张,票价优惠15%,20张以下,优惠5%;•在旅游的淡季1~5月份、10月份、11月份,如果订票数超过20张,票价优惠30%,20张以下,优惠20%;•其他情况一律优惠10%设计程序,根据月份和订票张数决定票价的优惠率(如图5-8)该问题属于多分支选择问题。
该问题中旅游的淡季1~5月份、10月份、11月份的优惠率一样,在switch语句中,这几种情况可以使用同一种操作;旅游的旺季7~9月份的优惠率一样,可以使用同一种操作。
“计算优惠率”按钮实现代码如下。
private void button1_Click(object sender, System.EventArgs e){int mon,sum;mon=Convert.ToInt32(textBox1.Text);sum=Convert.ToInt32(textBox2.Text);switch(mon){ case 1:case 2:case 3:case 4:case 5:case 10:case 11:if(sum>20)label3.Text="优惠率为30%";elselabel3.Text="优惠率为20%";break;case 7:case 8:case 9:if(sum>20)label3.Text="优惠率为15%";elselabel3.Text="优惠率为5%";break;default:label3.Text="优惠率为10%";break;}}操作任务任务认识计算机一、任务要求为铁路部门编写计算运费的程序。
程序运行结果如下:二、操作步骤1.创建项目。
2.设计应用程序界面。
3.设置对象的属性。
4.编写事件代码。
“计算运费”的Click事件代码:private void button1_Click(object sender, System.EventArgs e) {double k,p;//k是重量,p是运费k=double.Parse(textBox1.Text);if(k<=50) p=k*0.25;else if(k<=100) p=50*0.25+(k-50)*0.35;else p=50*0.25+50*0.35+(k-100)*0.45;label2.Text="您应付的运费是:"+p.ToString()+"元";}经验与技巧注意:判断条件的设定只需判断2次若k不满足小于50且小于100,则不需再判断是否是大于100的数。
巩固拓展练习题:课后练习第83页 15、16、20、21题课程小结本次课主要介绍了选择结构中单分支选择和多分支选择语句,通过学习能够设计选择结构的应用程序。
第二讲使用单选按钮与复选框控件、使用分组框控件 教学目标1. 掌握单选按钮的使用。
2. 掌握复选框控件的使用。
3. 了解分组框控件。
教学过程预备知识5.4 使用单选按钮与复选框控件5.4.1 单选按钮(RadioButton)单选按钮也叫选项按钮,为用户提供从多个选项中选择一个选项的功能,因此单选按钮顾名思义是一种“多选一”的控件。
常用属性:•Checked:按钮是否被选中RadioButton1. Checked=true\\表示按钮被选中RadioButton1. Checked=false\\表示按钮没有选中•Enabled:按钮是否可用•Appearance:正常外观还是下压按钮外观•【例5-6】设计Windows应用程序,单击【显示】按钮,根据对单选按钮的选择,分别显示日期或时间。