第三章程序流程控制_第1页
第三章程序流程控制_第2页
第三章程序流程控制_第3页
第三章程序流程控制_第4页
第三章程序流程控制_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第3章 程序流程控制,3.2 选择结构,3.3 循环结构,3.4 综合实例,3.1 顺序结构,2,3.1 顺序结构,3.1.2 数据输出,3.1.3 数据输入,3.1.1 赋值语句,3.1.4 卸载对象,3,3.1.1 赋值语句,1.赋值语句的一般的格式 变量赋值: Let = 属性赋值: Let .= Dim a as integer Let a=100 a=100 两个语句的功能相同,4,2.赋值语句的含义 首先计算赋值号右边表达式的值,然后将此值赋给赋值号左边的变量名或属性名。 例:dim a as integer a=100 a=a+1 a=3*4,5,关键字Let为可选项,通常都

2、省略该关键字;“ = ”称为赋值号。 “表达式”可以是算术表达式、字符串表达式、关系表达式或逻辑表达式。,6,赋值号不是数学上的等号。 例如:“a=3” 应读作“将数值3赋给变量a”。 赋值语句具有计算和赋值的双重功能,它首先计算“=”右边的表达式,然后把结果赋给“=”左边的变量。,7,赋值语句要求右端表达式的类型与左端变量的类型相容。如果用字符串的形式表示数值,则可以将字符串赋给数值变量,也可将数值赋给字符串变量。 dim x as integer dim y as string x=“123 y=123,8,但如果把非数值形式的字符串赋给数值变量,将会在编译时出现错误。只有数据类型相容时可

3、以赋值,比如可以把单精度表达式赋给整型变量。,9,例3-1-1 赋值相容问题:,10,设计如图所示用户界面,在窗体中增加一个命令按钮Command1,两个标签Label1、Label2,两个文本框Text1、Text2。 输入命令按钮Command1的Click事件过程:,11,Private Sub Command1_Click() Dim x As Integer (single) Dim y As String y = 100.23 x = y y = y + 20 Text1.Text = x Text2.Text = y End Sub,12,例 3-1-2 交换两个变量中的数据(此

4、例为交换两个标签中的数据)。 用语句实现如下: C=A:A=B:B=C,13,编写代码: Private Sub Command1_Click() Dim C As String C = Label2.Caption Label2.Caption = Label4.Caption Label4.Caption = C End Sub,14,程序代码可改为: Private Sub Command1_Click() Dim a, b, c As String a = Label2.Caption b = Label4.Caption c = a a = b b = c Label2.Captio

5、n = a Label4.Caption = b End Sub,15,3.1.2 数据输出,用Print方法输出数据,用MsgBox输出数据,用标签控件输出数据,16,1.用标签控件输出数据,标签(Label)是VB中最常用的输出文本信息的工具。 Label控件显示的文本用户不能直接修改。 在Label中显示的文本是由Caption属性控制的,该属性可以在设计时通过“属性”窗口设置或在运行时赋值。,17,如:label1.caption=“计算机基础部” 例 3-1-3、例3-1-4 自己上机调试 P60错误,18,2.用Print方法输出数据,Print方法: Print方法用于在窗体(F

6、orm)、立即窗口(Debug)、图片框(Picture)或打印机(Printer)等对象中显示文字字符串或表达式的值,其语法格式如下: .Print ,|;,19,用Print方法输出数据,说明: 对象名称可以是窗体、立即窗口、图片框或打印机。如果省略了对象名称,则在当前窗体上输出。例如: form2.Print “Visual Basic” Picture.Print “Visual Basic” Debug.Print “Visual Basic” Print “Visual Basic”,20,用Print方法输出数据,表达式表是一个或多个表达式,它们可以是数值表达式、字符串表达式、关

7、系表达式或布尔表达式。 对于数值表达式,将输出表达式的值;对于字符串,则原样输出; 对于关系和布尔表达式,则输出逻辑值True或False。,21,用Print方法输出数据,当输出多个表达式时,各表达式之间用逗号“,”或分号“;”隔开。 当表达式用逗号分隔时,则各输出项按标准输出(分区输出)格式显示,即:每隔14列为一个输出区,逗号后面的表达式的值将在下一个输出区显示。 当使用分号分隔,则按紧凑格式输出,即各输出项之间无间隔地连续输出。 在一个Print语句中,可以将逗号和分号混合使用。,22,用Print方法输出数据,通常,每执行一个Print方法后将自动换行,即后面的Print将在新的一行

8、上显示信息。 为了使上下两个Print语句输出内容显示在同一行上,需在上一个Print语句的最后加上逗号或分号。,23,用Print方法输出数据,Print方法具有计算和输出的双重功能,对于表达式,总是先计算后输出。 Print 3*4=; 3 * 4 Print 3*4=, 3 * 4 Print 2 3,24,用Print方法输出数据,与Print方法有关的函数 Tab函数 在Print方法中,可以使用Tab函数对输出结果进行定位。,25,Tab函数的格式: Tab(n) Print Tab(5);”计算机”;Tab(15);”世界” 当在一个Print方法中有多个Tab函数是,每个Tab

9、函数对应一个输出项,各输出项之间用分号隔开。,26,Spc函数: 在Print方法中,用Spc函数跳过n列。其格式为: Spc(n) 其中,n是在显示或打印下一个表达式之前插入的空格数。Spc函数与输出项之间用分号隔开。,27,例如: Print “计算机”;Spc(5);“世界” Spc函数与Tab函数的作用类似,可以互相代替。但需要注意,Tab函数从对象的左端开始计数,而Spc只表示两个输出项之间的间隔。,28,3.用信息对话框输出数据,在VB中,对于一些简单的信息的输出,可以使用信息框函数MsgBox。 该函数在信息对话框中显示信息,等待用户单击按钮,并返回一个整数值,以表明用户单击了哪

10、个按钮。 若不需要返回值,则可以使用MsgBox的命令形式。,29,用信息对话框输出数据,MsgBox函数的语法格式: 变量=MsgBox( , ,) MsgBox命令的语法格式: MsgBox , ,,30,用信息对话框输出数据,说明: 为对话框中显示的提示文本,最大长度为1024个字符,对话框的高度和宽度随的增加而增加。在 中可以使用硬回车符Chr(13)使文本换行。,31, 用于控制对话框中按钮的数目和图标样式,一般有4个参数。 可以省略,若省略时默认值为0,即只显示一个“确定”按钮,而且此按钮为默认按钮,此时逗号分割符不能省略。,32, 表示对话框的标题,该选项可以省略。 Msgbox

11、()的函数形式的返回值指明了在对话框中可能出现的7种按钮: 确认、取消、终止、重试、 忽略、是和否。 例3-1-6 自己上机调试,33,用信息对话框输出数据,34,用信息对话框输出数据,35,用信息对话框输出数据,36,用信息对话框输出数据,37,3.1.3 数据输入,用输入框输入数据,焦点和Tab间顺序,用文本框控件输入数据,38,1.用文本框控件输入数据,文本框是最常用的数据输入控件,它可以方便地在运行程序时让用户输入和编辑文本,文本框也可以显示文本。,39,文本框的 Text属性 Text1.Text 例3-1-7 自己上机调试 例3-1-8 自己上机调试(Tag)属性,40,2.用输入

12、框输入数据,InputBox函数用于将用户从键盘输入的数据作为函数的返回值返回到当前程序中,此函数采用对话框界面,可以提供一个良好的交互环境。其语法为: 变量名=InputBox(, ,),41, 指定在对话框中出现的文本。在中使用硬回车(CHR(13)可以使文本换行。对话框的高度和宽度随着而增加,最多可有1024个字符。 指定对话框的标题。,42, 用于显示在输入区内的初始文本。 在输入框内输入信息后,若用户单击“确定”按钮,将把输入信息返回到变量中;若单击“取消”按钮,返回的将是一个空字符串。,43,a = InputBox(请输入系统口令:, 口令输入, *),44, 焦点和Tab键顺序

13、,焦点(Focus) 焦点(Focus)就是光标,当对象获得焦点时就可以接受用户的输入。 在Windows环境中,可以同时运行多个程序,但只有具有焦点的应用程序才有活动标题栏,才可以接受用户的输入。,45,一个窗体上如果有多个文本框,只有具有焦点的文本框才能接受键盘输入的文本内容。 当对象获得焦点时发生GetFocus事件 当对象失去焦点时发生LostFocus事件 仅当控件的Visible和Enabled属性被设置为真(True)时,控件才能接受焦点。,46,某些控件不具有焦点,如标签、框架、计时器等。 可以用以下方法将焦点赋给对象: 在程序运行时,用鼠标选择对象、使用Tab键移动、或用快捷

14、键 在程序代码中用SetFocus方法。 Text2.setfocus,47,Tab键顺序 Tab键顺序就是用户按Tab键时,焦点在窗体上的控件之间移动的顺序。 一般情况下,Tab顺序由控件建立的先后顺序确定。,48,不能获得焦点的控件,以及无效的和不可见的控件,不具有TabIndex属性,因而不包含在Tab键顺序中。按Tab键时,这些控件将被跳过。,49,通常,运行时按Tab键可以选择Tab顺序中的每一个控件。若将控件的TabStop属性设置为False,按Tab键时就会跳过该控件,但该控件的TabIndex顺序值仍然保留。,50,3.1.4 卸载对象(Unload语句),当程序结束而从内存

15、中卸载窗体或要从内存中卸载某些控件时,可以使用Unload语句。 Unload语句的语法格式为: Unload 对象名 如:Unload me (form1),51,说明: 对象名是要卸载的窗体对象或控件的名称。 在卸载窗体前,会发生QueryUnload事件,然后是Unload事件。在其中任一事件过程代码中设置Cancel参数的True可以防止窗体被卸载。 例 3-1-6 自己调试,52,3.2 选择结构,选择结构就是根据不同的情况做出不同的选择,执行不同的操作,它是程序设计中基本结构之一。 选择结构语句需要对某个条件做出判断,根据这个条件的取值情况,决定执行何种操作。,53,VB种的选择结

16、构语句分为: 单条件选择语句 (If 语句) 多条件选择语句 (Select Case 语句),54,3.2 选择结构,3.2.2 Select Case 语句,3.2.1 If 语句,55,单行格式 IfThenElse 单行条件语句比较简单,其语法格式: If Then Else 通常是关系表达式或逻辑表达式。该语句的功能是:如果“条件”的值为True,则执行,否则执行。,56,说明: 单行结构条件语句要求在一行内书写完毕,即不能超过一行255个字符的限度。 If ab Then c=a Else c=b,57, 语句组1 和 语句组2 可以是简单语句,也可以是用冒号分隔的多个语句。,58

17、, Else 是可选项,当该项省略时,IF语句简化为: If Then 它的功能为:如果条件为True,则执行语句组1,否则执行IF语句的下一个语句。 例3-2-1 P71,59, 多行格式If语句 在单行结构条件语句中,如果条件分支执行的操作比较复杂,不能在一个逻辑行内书写完毕,可以使用多行结构条件语句。,60,多行If语句又称为块If语句。 语法格式: If Then Else End If,61,说明: 在块If语句中,If语句必须是第1行语句,End If语句是If块的最后一个语句。,62, 在程序运行到If块时,首先判断。如果条件为True,则执行Then后的语句组1,否则执行Els

18、e后的语句组2。当执行完Then或Else之后的语句组后,则继续执行End If后的语句。,63, 语句组可以是单个语句,也可以是多个语句。当有多个语句时,可以分别写在多行里;如果写在一行中,则各语句之间用冒号隔开。 Else子句是可选项。若有该项,Else必须单独占一行。,64,例3-2-2: 托运行李,当行李重量不超过50公斤时,每公斤运费0.25元,超过50公斤后,超过部分按每公斤0.40元收费。输入行李重量,计算出应付运费。,65,例3-2-3 设计一个接受口令的窗体,单击确定按钮后,当口令输入正确则进入一个新窗口,若口令输入错误,则给出错误提示。无论用户输入什么字符,文本框中只显示相

19、同数量的 “ * ”,66,3.2.1 If 语句, If语句的嵌套 如果在If语句中,语句组1或语句组2本身又是一个If语句,则称为If语句的嵌套。,67,If语句的嵌套格式: If Then ElseIf Then ElseIf Then Else End if,68,此语句的功能是: 如果为True,执行,否则,如果为True,执行,否则执行语句组n。 例3-2-4、3-2-5,69,使用IIF函数 在程序设计中可以使用IIf函数来实现一些比较简单的选择结构。IIf函数的语法结构为: IIf (,),70,说明: “条件表达式”可以是关系表达式、布尔表达式或数值表达式。如果用数值表达式作

20、条件,则非0为真,0为假。 “真部分”是当条件表达式为真时函数返回的值,“假部分”是当条件表达式为假时函数返回的值,它们可以是任何表达式。,71, 语句 y=IIf(,) 相当于: If then y= Else y= P78,72,3.2.2 Select Case语句,在程序设计中,经常会有多种情况的选择。虽然可以使用If语句的嵌套形式实现多分支选择,但使用多分支选择Select Case语句,更为简单,它根据表达式的值,来决定执行几组语句中的哪一组。,73,Select Case语句的语法格式为: Select Case Case Case Case Else End Select,74

21、,Select Case选择结构执行的过程为: (1)计算的值 (2)将的值与Case语句中的中的每一个值逐一进行比较。 如果与其中的一个值相匹配,则执行该语句中的。 如果不止一个 Case与相匹配,则只对第一个匹配的 Case 执行与之相关联的。 如果在表达式列表中没有一个值与测试表达式相匹配,则 执行 Case Else 子句最后执行 End Select语句。,75,说明: 可以是数值表达式或字符表达式,通常是一个变量。 Case子句中的的值必须与的类型相同。,76, 的表达形式由以下三种: 表达式:该种表达方式通常表达一些具体的取值,例如 Case 1,3,5,7 表达式 To 表达式

22、:该种表达方式常用来表示一个数值范围,较小的数应该放在关键字To的前面,例如 Case 3 To 9 Is 比较运算表达式:Is关键字与比较运算符结合,也常用来表达一个数值范围,例如:Case Is,=,。,77, 在每个Case子句中还允许使用表达式的混合形式。例如: Case 2,4,6, 8 to 10 ,Is15 若在多个Case子句有同一种取值重复出现,则只执行第一个出现此取值的Case语句后的相应语句组。,78,例 3-2-6 编写程序计算货物运费。设货物运费单价Y元/每吨/每公里,运输距离为S公里。单价Y与距离S的关系为: 输入要托运的货物重量W吨、托运的距离为S公里,计算总运费

23、F:F=Y*W*S,79,例3-2-7 给定年份和月份,判断该年是否为闰年,并根据给定的月份判断该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除。),80,3.3 循环结构,循环结构是指在执行程序语句时,需要对其中的某些语句重复执行多次。需重复执行的程序段称为“循环体”。 使用循环结构可以简化程序,节约内存,提高程序执行效率。,81,3.3 循环结构,VB提供的循环结构语句有: ForNext、 DoLoop、 For Each Next、 WhileWend 等。 其中最常用的是ForNext和DoLoop语句,本节主要讲解这两个循环语句的用法。,82,3.3

24、.1 For.Next语句,3.3.2 Do.Loop语句,3.3.3 循环嵌套,3.3.4 退出控制结构,3.3 循环结构,83,ForNext循环结构是一种最简单的循环结构,它属于计数型循环,通常用于循环次数已知的程序结构中。其一般格式如下:,3.3.1 ForNext 语句,For, =,TO ,Step ,Next ,84,3.3.1 For.Next语句,是一个数值变量,用作循环计数器,不能是数组或记录元素。 为循环变量的初始取值, 为循环变量的最后取值, 它们均可以是数值型的常量、变量或表达式,它们的值可以是整数和实数。,85,3.3.1 For.Next语句, 用于决定循环变量每

25、次增加的数值,即变量在变化时的增值,也为数值型常量、变量或表达式。步长的取值可以根据初值和终值的关系分为正数或负数两种,若初值大于终值,则必须将步长设为负数;若初值小于终值,则必须将步长设为正数,才有可能执行内部循环体。当步长为1时,可以省略Step 1。,86,3.3.1 For.Next语句, 可以在循环体中的任何位置放置Exit For语句,以便随时退出循环。 (5)循环的次数有初值、终值和步长三个因素决定,计算公式为: 循环次数=Int(终值-初值)/步长 +1 ) 如:For I=1 To 10 Step 2,87,3.3.1 For.Next语句,For语句的执行过程是: 首先把“

26、初值”赋给循环变量, 接着检查循环变量是否超过终值,如果超过就停止执行循环体,跳出循环,执行Next后面的语句; 否则执行一次循环体,然后把“循环变量+步长”的值再赋给循环变量; 重复上述过程。,88,循环变量赋初值,循环变量终值,循环体,循环变量循环变量+步长,Next的下一个语句,NO,yes,例题,89,例 3-3-6: 求自然数1100之间奇数之和。 (自己上机调试1100自然数及偶数的和),90,例3-3-5 求n!(n为自然数) n!=123(n-2)(n-1)n =(n-1)!n 一个自然数的阶乘,等于该自然数与前一个数的阶乘的乘积,即从1开始连续地乘下一个自然数,直到n为止。,

27、91,例3-3-7,求:,直到第50项,92,例3-3-8 用随机函数产生10个在指定范围内的随机数,随机数的范围在文本框内输入。,93,3.3.1 DoLoop语句,DoLoop 语句是根据条件决定循环。 DoLoop 语句具有很强的灵活性: 既能够指定循环条件,也能指定循环结束条件; 既可以构成先判断条件形式,也可以构成后判断条件形式。,94,1.先判断条件形式的DoLoop语句,语句格式为: Do While | Until 循环体 Loop,95,先判断条件形式的DoLoop语句,格式一: 当型循环 Do While Loop 格式二: 直到型循环 Do Until Loop,96,先判断条件形式的DoLoop语句, Do While Loop 是当型循环语句,即如果为真(True)时执行循环体,条件为假 (False)时,终止循环。,97,Do Until Loop 是直到型循环语句,为假时执行循环,直到条件为真时,终止循环。,98,是条件表达式,为循环条件,其值为True 或 False。 在DoLoop中可以在任何位置放置Exit Do语句,以便随时退出循环。Exit Do 通常放在条件语句中,当满足一定条件时,退

温馨提示

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

评论

0/150

提交评论