第5章 选择结构程序设计
- 格式:doc
- 大小:671.50 KB
- 文档页数:14
第五章选择结构程序设计●教学内容(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 配对。
第五章选择(分支)结构程序设计选择结构是三种基本结构(顺序、选择、循环)之一。
作用是根据所指定的条件是否满足,决定从给定的两组操作选择其中的一种。
C语言中的选择结构是用if语句实现的。
if语句的常用的形式是:if(关系/逻辑表达式)语句1 else 语句2例5-1:用C语言实现图示的分段函数。
数学上描述此分段函数:1, x>0y=其它用C语言描述:if(x>0)y=1;else y=-1;其中:x>0是一个关系表达式,“>”是一个关系运算符。
x>0关系表达式成立,也就是说由关系表达式x>0构成的逻辑运算为真时,y<=1,否则y<=-1。
5、1 关系运算符和关系表达式关系运算是逻辑运算中比较简单的一种,“关系运算”就是“比较运算”。
即,将两个值进行比较,判断是否符合或满足给定的条件。
如果符合或满足给定的条件,则称关系运算的结果为“真”;如果不符合或不满足给定的条件,则称关系运算的结果为“假”。
例5-1中,x>0是比较运算,也就是关系运算,“>”是一种关系运算符。
假如x=4,那么x>0条件满足,就是说关系运算x>0的结果为“真”。
5.1.1 关系运算符及其优先次序C语言提供6种关系运算符:关于优先次序:(1)前4种关系运算符的优先级别相同,后两种也相同。
前4种高于后两种。
(2)关系运算符的优先级低于算术运算符。
(3)关系运算符的优先级高于赋值运算符。
例5-2:c>a+b 等价于c>(a+b);关系运算符的优先级低于算术运算符a>b==c 等价于(a>b)==c ;“>”优先级高于“==”a==b<c 等价于a==(b<c) ;“<”优先级高于“==”a=b>c 等价于a=(b>c) ;关系运算符的优先级高于赋值运算符。
5.1.2 关系表达式用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式等)连接起来所构成的表达式,称为关系表达式。
第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应用程序,单击【显示】按钮,根据对单选按钮的选择,分别显示日期或时间。