选择结构程序设计_第1页
选择结构程序设计_第2页
选择结构程序设计_第3页
选择结构程序设计_第4页
选择结构程序设计_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、u 选择结构选择结构:根据条件表达式的值,作出:根据条件表达式的值,作出不同的选择,执行不同的操作。不同的选择,执行不同的操作。u 执行选择结构,首先对某个条件作出执行选择结构,首先对某个条件作出判断,然后根据这个条件的具体取值情况判断,然后根据这个条件的具体取值情况,选择一组语句执行。,选择一组语句执行。2003. 苏玉雄苏玉雄 1-2第第4章章u选择结构程序设计选择结构程序设计本章学习目标本章学习目标单分支、双分支结构单分支、双分支结构4.14.1条件语句的嵌套条件语句的嵌套4.24.2Select Case语句结语句结构构4.34.3时钟控件时钟控件4.44.44.1.1 IF单分支结构

2、单分支结构 u单分支条件语句的格式:单分支条件语句的格式: If Then If Then 语句块语句块 End If 逻辑表达式逻辑表达式4.1.1 IF单分支结构单分支结构条件语句结构说明条件语句结构说明1.处应该是一个逻辑表达式,或处应该是一个逻辑表达式,或者结果可以转换为逻辑值的表达式。者结果可以转换为逻辑值的表达式。2.“语句块语句块”处是一条或多条连续的语句处是一条或多条连续的语句(允许允许没有任何语句没有任何语句)。如果是第一种格式,那语句。如果是第一种格式,那语句块只能是单条语句。块只能是单条语句。 3.当程序执行到这条语句时,首先检查当程序执行到这条语句时,首先检查的值是否为

3、的值是否为True。如果是。如果是True,则执行,则执行Then后的后的“语句块语句块”,然后接着执行下面的,然后接着执行下面的语句。语句。 如果如果“条件条件”为为False,则不执行则不执行“语语句块句块”中的任何语句,直接跳到下一条语句中的任何语句,直接跳到下一条语句执行。执行。案例案例4-1u 输入两个数值输入两个数值x x、y y,通过程序使,通过程序使x x的的值大于值大于y y的值。使用文本框输入并在文本的值。使用文本框输入并在文本框中显示结果界面设计如下。框中显示结果界面设计如下。u演示演示案例案例4-1u【案例分析案例分析】:首先判断:首先判断x和和y哪一个值比较大,如果哪

4、一个值比较大,如果x本来就大,那么我们不需要做任何事,反之本来就大,那么我们不需要做任何事,反之y比比x大,将大,将x和和y的值互换,以保证的值互换,以保证x的值大于的值大于y的值。的值。x和和y的互换中,的互换中,我们要借助一个临时变量。我们要借助一个临时变量。案例案例4-1Private Sub Command1_Click() Dim x As Integer,y As Integer x=Val(Text1.Text) : y=Val(Text2.Text) If xy Then t=x: x=y: y=t 用分隔符冒号隔开用分隔符冒号隔开 End If Text1.Text=x :

5、Text2.Text=yEnd sub4.1.2 IF双分支结构双分支结构 u双分支条件语句的格式:双分支条件语句的格式: If Then Else If Then Else End If双分支结构说明双分支结构说明案例案例4-2 u使用输入框输入一个实数,使用消息框使用输入框输入一个实数,使用消息框输出该实数的平方根。输出该实数的平方根。 u【案例分析案例分析】:首先要判断该实数是否:首先要判断该实数是否小于小于0,如果小于,如果小于0则没有实数根,否则使则没有实数根,否则使用用Sqr函数计算出该数的平方根。函数计算出该数的平方根。案例案例4-2【程序设计程序设计】:Private Sub

6、command1_Click()Dim x As Singlex = Val(InputBox(请输入请输入x的值的值)If x = 0 Then MsgBox “该数的平方根为:该数的平方根为: & Sqr(x)Else MsgBox “该数没有平方根。该数没有平方根。”End IfEnd Subx=InputBox(“提示信息提示信息”, “标题标题”,默认值默认值,XPos, YPos)演示演示IIf 函数函数u 语法格式:语法格式: 变量变量=IIf (条件表达式,条件表达式,,)u 等价于:等价于: If (条件表达式条件表达式) Then y=真部分真部分 Else y=假

7、部分假部分IIF函数函数u 例:例: y=IIf(x=o,1+x,1-2*x)u 等价于:等价于: If (x=0) Then y=1+x Else y=1-2*x如果如果a=5, b=6, c=7, d=8,则执行下面的语句后,则执行下面的语句后x的值为:的值为: x=IIF(ab)And(cd),10,20)4.2 条件语句的嵌套条件语句的嵌套 u 在一个条件语句中还有另外一个条件结构在一个条件语句中还有另外一个条件结构嵌在其中。条件语句的嵌套可以包含很多层嵌在其中。条件语句的嵌套可以包含很多层,形成多重条件语句嵌套。,形成多重条件语句嵌套。4.2 条件语句的嵌套条件语句的嵌套 u例:例:

8、求一元二次方程求一元二次方程a*x2+b*x+c=0的根的根。案例案例4-3u 银行定期存款利率银行定期存款利率有一下几种:一年有一下几种:一年2.25%2.25%;二年;二年2.43%2.43%;三;三年期年期2.70%2.70%;五年期;五年期2.88%2.88%,现有本金,现有本金X X元,元,分别按存储各种定期,分别按存储各种定期,请编程计算到期后本息请编程计算到期后本息合计。合计。界面设计界面设计 演示演示案例案例4-3 源码源码4.2 条件语句的嵌套条件语句的嵌套If Then语句块语句块1ElseIf Then语句块语句块2ElseIf Then语句块语句块3Else 语句块语句

9、块nEnd If4.2 条件语句的嵌套条件语句的嵌套1.多分支多分支if语句的执行顺序是:若表达式语句的执行顺序是:若表达式1的值的值为为True,则执行语句块,则执行语句块1,否则,若表达式,否则,若表达式2的值为的值为True,则执行语句块,则执行语句块2,依次类推。,依次类推。2.在多分支结构中,每一个语句块执行后,均在多分支结构中,每一个语句块执行后,均直接转去执行直接转去执行End If 的下一条语句;的下一条语句;3.结构中的结构中的ElseIf项可以有多个,但项可以有多个,但else项只项只能有一个,并且能有一个,并且ElseIf是连着写,中间没有是连着写,中间没有空格;空格;4

10、.结构中结构中End If表示多分支选择语句的结束,表示多分支选择语句的结束,不可省略。不可省略。 u不管有几个分支,依次判断,当某条件满足,执行相不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有应的语句,其余分支不再执行;若条件都不满足,且有ElseElse子句,则执行该语句块,否则什么也不执行。子句,则执行该语句块,否则什么也不执行。uElseIfElseIf不能写成不能写成 Else IfElse If。案例案例4-3 改进的源码改进的源码案例案例4-3 运行结果运行结果框架框架课堂练习课堂练习u某照相馆为吸引顾客,推出了某照相馆为吸引顾客,

11、推出了8 8寸相片促销方式,如下:寸相片促销方式,如下: 一次性洗相片一次性洗相片100100张以上打张以上打7 7折折 一次性洗相片一次性洗相片7070张以上打张以上打8 8折折 一次性洗相片一次性洗相片5050张以上打张以上打8.58.5折折 一次性洗相片一次性洗相片3030张以上打张以上打9 9折折 其它打其它打9.59.5折折u编写程序,输入要洗照片数量,按每张相片编写程序,输入要洗照片数量,按每张相片1 1元钱,计算元钱,计算需要的总金额。调用输入框输入要洗的照片数量,使用消需要的总金额。调用输入框输入要洗的照片数量,使用消息框输出需要金额。息框输出需要金额。【案例分析案例分析】:这

12、个程序中也用到了选择结构,而且有:这个程序中也用到了选择结构,而且有5个选项,可以看出需要多重选择结构。选择的条件就是要个选项,可以看出需要多重选择结构。选择的条件就是要洗的照片的数量。洗的照片的数量。课堂练习课堂练习4-5 程序设计程序设计Private Sub Command1_Click()Dim x As Integer, P As Singlex = Val(InputBox(请输入要洗的照片数量请输入要洗的照片数量, 输入框输入框)If x 100 Then P = x * 0.7ElseIf x 70 Then P = x * 0.8ElseIf x 50 Then P = x

13、* 0.85ElseIf x 30 Then P = x * 0.9Else P = x * 0.95End IfMsgBox 您需要付的金额为:您需要付的金额为: & Chr(13) & P, , 结算结算 End Sub输入数据 运算结果 4.3 Select Case语句结构语句结构 上一章节我们学习了多分支选择结构,但如上一章节我们学习了多分支选择结构,但如果条件较复杂时,上一章节的结构就不够明了,果条件较复杂时,上一章节的结构就不够明了,对条件的描述能力较差,这里我们介绍另外一种对条件的描述能力较差,这里我们介绍另外一种多分支选择结构多分支选择结构SelectCase

14、语句,同样也能实语句,同样也能实现表示多分支选择的功能。现表示多分支选择的功能。4.3.1 SelectCase语句结构语句结构 Select Case Case 语句块语句块1 Case 语句块语句块2 Case 语句块语句块n case else 语句块语句块 n+1 End Select执行顺序:执行顺序:判断测试表达式与哪一个判断测试表达式与哪一个case的表达式值列相匹配的表达式值列相匹配,若有,即执行对应,若有,即执行对应case子句后的语句块,然后跳转子句后的语句块,然后跳转到到end select语句处;若没语句处;若没有,则执行有,则执行case else中的中的else语句

15、块,然后跳转到语句块,然后跳转到end select语句处。语句处。4.3.1 SelectCase语句结构说明语句结构说明1.测试表达式可以是测试表达式可以是数值型或字符型数值型或字符型;2.各值列项可以取下列形式之一:各值列项可以取下列形式之一: ,.:该种表达方式常用来表达:该种表达方式常用来表达一些具体的取值。一些具体的取值。 例如:例如:case 3,7 to :表示测试表达式的范围。其:表示测试表达式的范围。其中表达式中表达式1的值必须小于表达式的值必须小于表达式2的值。的值。Is :表示测试表达式的关系。:表示测试表达式的关系。可使用的比较运算符有:可使用的比较运算符有:,=,=

16、,。4.3.1 SelectCase语句结构说明语句结构说明3.如果测试表达式与多个如果测试表达式与多个case子句中的表达式子句中的表达式相匹配,则只执行与之匹配的第一个相匹配,则只执行与之匹配的第一个case语语句块;句块;4.结构中结构中case else为可选项为可选项,若它省略,则,若它省略,则当测试表达式与所有表达式值列不匹配时,当测试表达式与所有表达式值列不匹配时,不执行任何语句块,直接跳到不执行任何语句块,直接跳到end select。案例案例 4-4u航空公司对飞往北京的飞机票实行按月份打折航空公司对飞往北京的飞机票实行按月份打折销售,销售,1 1月、月、3 36 6月份折扣

17、为月份折扣为6 6折;折;9 91111月折扣为月折扣为7 7折折7 7、8 8月折扣为月折扣为8 8折折其余月份折扣为其余月份折扣为9 9折折u设每张机票原价设每张机票原价10001000元,使用元,使用SelectSelectCaseCase结结构计算完成机票价格的计算。在程序中使用文本构计算完成机票价格的计算。在程序中使用文本框输入出行的月份,在文本框中输入购买的票数框输入出行的月份,在文本框中输入购买的票数。使用消息框输出总共需要的金额。使用消息框输出总共需要的金额。案例案例 4-4u【案例分析案例分析】:本案例中毫无疑问要使用到多:本案例中毫无疑问要使用到多分支选择结构。仔细分析题目

18、会发现本案例中的分支选择结构。仔细分析题目会发现本案例中的条件比较复杂,如果使用以前章节的条件表示方条件比较复杂,如果使用以前章节的条件表示方法较麻烦,所以我们使用法较麻烦,所以我们使用Select Case语句,语句,对条件进行简单化。对条件进行简单化。案例案例4-4 程序设计程序设计常常 见见 错错 误误1 1在选择结构中缺少配对的结束语句对多行式的在选择结构中缺少配对的结束语句对多行式的IfIf块语句中,应有配对的块语句中,应有配对的 End IfEnd If语句结束。语句结束。 2. 2. 多边选择多边选择ElseIfElseIf关键字的书写和条件表达式的关键字的书写和条件表达式的表示

19、表示ElseIf ElseIf 不要写成不要写成Else IfElse If; 多个条件表达式次序问题。多个条件表达式次序问题。3. Select Case3. Select Case语句的使用:语句的使用: Select Case Select Case 后不能出现多个变量;后不能出现多个变量;CaseCase子句子句后不能出现变量。后不能出现变量。课堂练习课堂练习u已知一个方程,输入已知一个方程,输入x x要求计算要求计算y y 的值。的值。 试编写程序完成计算。使用输入框输入试编写程序完成计算。使用输入框输入X X的值,使用消息的值,使用消息框输出框输出y y的值。的值。 u【案例分析案

20、例分析】:该程序需要进行数学计算,根据:该程序需要进行数学计算,根据x的不的不同值使用不同公式计算得到同值使用不同公式计算得到y的值。使用多重循环结构。的值。使用多重循环结构。我们这里使用我们这里使用SelectCase语句完成。语句完成。 课堂练习课堂练习 程序设计程序设计Private Sub Command1_Click() Dim x As Single, y As Single x = Val(InputBox(请输入请输入x的值:的值:, 输入框输入框) Select Case x 根据根据x的值计算的值计算y 的值的值 Case Is 2 y = x 2 + 2 * x Case

21、 Is 5 y = x - x 3 + 3 Case Is 7 y = x 3 + x 2 + x Case Else y = 0 End Select MsgBox 您输入的您输入的x为:为: & x & Chr(13) & 计算得到的计算得到的y值为:值为: & y, , 结果结果End Sub课堂练习课堂练习 运行效果运行效果程序运行前 程序运行效果 学习计划:学习计划:星期一、三、五:英语;星期一、三、五:英语;星期二、四:星期二、四: VB;星期六:健身;星期六:健身;星期日:休息星期日:休息编写程序:用户在给出星期几的信息之后(输入框函数编写程序:用

22、户在给出星期几的信息之后(输入框函数),给出学习计划(消息框函数)。在输入),给出学习计划(消息框函数)。在输入06时分时分别代表星期日到星期六,如果输入别代表星期日到星期六,如果输入06以外的数,则以外的数,则程序结束运行。程序结束运行。要求:用要求:用select 和和if两种方法实现两种方法实现用户界面可自行设计。用户界面可自行设计。4.4 单选框、复选框和时钟控件单选框、复选框和时钟控件计时器、单选框、复选框、框架在工具箱中位置 框架单选框时钟控件框复选框4.4.1 框架控件框架控件框架控件框架控件: 框架控件是一个容器控件,在工具箱按钮为框架控件是一个容器控件,在工具箱按钮为 ,它除

23、了增加窗体结构的美观外主要用于将屏幕上的对象它除了增加窗体结构的美观外主要用于将屏幕上的对象分组,方便用户识别。属于框架内的控件即可看成是一分组,方便用户识别。属于框架内的控件即可看成是一组。使用框架时要注意,需首先绘制框架控件,然后再组。使用框架时要注意,需首先绘制框架控件,然后再添加需在框架内的其他控件,这些控件大小不能超过框添加需在框架内的其他控件,这些控件大小不能超过框架。架。 当框架控件中有多个单选框时,当前有且只能选中当框架控件中有多个单选框时,当前有且只能选中一个。一个。 返回返回框架控件常用属性框架控件常用属性属性功能值Caption框架的提示标题内容字符串Enable将框架内

24、的控件全部可用或不可用True或False4.4.2 单选框按钮控件单选框按钮控件 u 单选框按钮用于从多项中选择单个单选框按钮用于从多项中选择单个,在工具箱按钮为,在工具箱按钮为 ,它的常用属性、事,它的常用属性、事件、方法如下:件、方法如下:单选框控件常用属性单选框控件常用属性属性功能值Caption设置选项按钮的标题标题内容字符串Alignment设计标题位置0;默认值,居右侧;1;居左侧;Value单选按钮是否选中True或FalseEnabled是否可用True或False单选框控件常用事件、方法单选框控件常用事件、方法u单选框控件的常用事件有:单选框控件的常用事件有:Click,D

25、bClick,GotFocus,LostFocus,KeyDown, KeyUp,KeyPress,MouseDown,Mousellp,Mousemove等。等。u常用的方法有:常用的方法有:SetFocus和和ReFresh。4.4.3 复选框按钮控件复选框按钮控件u 复选框(复选框(CheckBoxCheckBox)控件,可以实)控件,可以实现在一组选项中同时选中多个选项,一般现在一组选项中同时选中多个选项,一般情况先被选中的选项的左侧的复选框中会情况先被选中的选项的左侧的复选框中会出现一个对号。出现一个对号。CheckBoxCheckBox组中的某个选项组中的某个选项被选中时,其他选项

26、不会失效。复选框控被选中时,其他选项不会失效。复选框控件的常用属性、事件和方法与单选框相似件的常用属性、事件和方法与单选框相似。 复选框控件常用属性复选框控件常用属性属性功能值Caption设置选项按钮的标题标题内容字符串Alignment设计标题位置0;默认值,居右侧;1;居左侧;Value复选按钮是否选中0表示为选中;1表示为已选中;2也表示为已选中,但现实灰色,有不确定的选择值。 Enabled是否可用True或False案例案例4-5u选择单选框和复选框实现文本框内字体选择单选框和复选框实现文本框内字体的变化。使用单选框选择字体,使用复选的变化。使用单选框选择字体,使用复选框选择字型。

27、程序界面设计如下图。框选择字型。程序界面设计如下图。案例案例4-5u【案例分析案例分析】:这个练习主要用到了单选框和:这个练习主要用到了单选框和复选框两种控件,这两个控件最常用的就是它们复选框两种控件,这两个控件最常用的就是它们的单击的单击Click事件,但这两个控件的单击事件用事件,但这两个控件的单击事件用法不完全相同,一般来说单选框的单击表示该控法不完全相同,一般来说单选框的单击表示该控件被选中了;而复选框的单击可能是选中了,也件被选中了;而复选框的单击可能是选中了,也可能没有选中。所以在程序设计中需要区别对待可能没有选中。所以在程序设计中需要区别对待。u要实现控件上显示字体的变化需要设置

28、该控件要实现控件上显示字体的变化需要设置该控件的的Font属性,要实现字型的变化还有一些其他属性,要实现字型的变化还有一些其他的属性例如:的属性例如:FontBold(加粗)、(加粗)、FontItalic(倾斜)、倾斜)、FontUnderLine(下划线)等。(下划线)等。 案例案例4-5 界面设计界面设计添加一窗体添加一窗体Form1Form1,并添加一个标签框,并添加一个标签框Label1Label1,两个框架,两个框架控件控件Frame1Frame1、Frame2Frame2,在,在Frame1Frame1中添加三个单选框控件中添加三个单选框控件Option1Option1Optio

29、n3Option3;在;在Frame2Frame2中添加三个复选框控件中添加三个复选框控件Check1Check1Check3Check3。属性设置如下:。属性设置如下:对象名属性名属性值作用Form1Caption字体的设置设置标题栏Frame1Caption字体设置Frame2Caption字型设置Label1Caption新年快乐Option1Font20Caption宋体ValueTrue设置默认值Option2Caption黑体Option3Caption楷体_GB2312Check1Caption加粗Check2Caption倾斜Check3Caption下划线案例案例4-5 程序

30、设计(一)程序设计(一)uPrivate Sub Check1_Click() 设置字体是否加粗设置字体是否加粗uIf Check1.Value = 1 Thenu Label1.FontBold = TrueuElseu Label1.FontBold = FalseuEnd IfuEnd SubuPrivate Sub Check2_Click() 设置字体是否倾斜设置字体是否倾斜uIf Check2.Value = 1 Thenu Label1.FontItalic = TrueuElseu Label1.FontItalic = FalseuEnd IfuEnd Sub案例案例4-5

31、程序设计(二)程序设计(二)uPrivate Sub Check3_Click() 设置字体是否有下划线设置字体是否有下划线uIf Check3.Value = 1 Thenu Label1.FontUnderline = TrueuElseu Label1.FontUnderline = FalseuEnd IfuEnd SubuPrivate Sub Option1_Click() 设置字体为宋体设置字体为宋体uLabel1.FontName = 宋体宋体uEnd SubuPrivate Sub Option2_Click() 设置字体为黑体设置字体为黑体uLabel1.FontName

32、= 黑体黑体uEnd SubuPrivate Sub Option3_Click() 设置字体为楷体设置字体为楷体_GB2312uLabel1.FontName = 楷体楷体_GB2312uEnd Sub案例案例4-5 程序运行效果程序运行效果4.4.4 时钟控件时钟控件u 时钟控件是利用计算机系统内部的时钟控件是利用计算机系统内部的计时器计时,提供定时时间间隔的控件。计时器计时,提供定时时间间隔的控件。所谓时间间隔,是指各计时器事件之间的所谓时间间隔,是指各计时器事件之间的时间间隔。计时器的定时时间间隔可以由时间间隔。计时器的定时时间间隔可以由用户自行设置,一般是以毫秒为计时单位用户自行设置,一般是以毫秒为计时单位。大多数个人计算机中,计时器每秒最多。大多数个人计算机中,计时器每秒最多可产生可产生1818个计时器事件。也就是说,指定个计时器事件。也就是说,指定时间间隔最小不得小于时间间隔最小不得小于1/181/18秒。秒。 时钟控件常用属性时钟控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论