150 likes | 346 Views
第 5 章 选择结构程序设计 . 选择结构程序设计. If 结构 在某些条件成熟的情况下才能解决下一个问题,在表达的时候就会有“如果 …… 就 ……” 或者“如果 …… 就 …… ,否则 …… 就 ……” 的说法,这些表达方法表示成计算机语言 “ If…Then…” 结构或者“ If… Then …Else…” 结构。. 单分支结构( If … Then … 语句) 这种结构的语法为: If < 条件表达式 > Then 语句块 End If 这种结构的程序流程图为:. 开始 (start). ……. F. 条件表达式. T. 语句块.
E N D
选择结构程序设计 • If 结构 • 在某些条件成熟的情况下才能解决下一个问题,在表达的时候就会有“如果……就……”或者“如果……就……,否则……就……”的说法,这些表达方法表示成计算机语言 “If…Then…”结构或者“If… Then …Else…”结构。 单分支结构(If … Then … 语句) 这种结构的语法为: If <条件表达式> Then 语句块 End If 这种结构的程序流程图为: 开始(start) …… F 条件表达式 T 语句块 …… 结束(End)
开始 …… F 条件表达式 T 语句块1 语句块2 …… 结束 选择结构程序设计 • 双分支结构 • 这种结构就是人们常说的“如果……就……,否则就……”的问题,这类问题转化成计算机语言就是双分支结构If … Then … Else… 语句 • 这种结构的语句形式: • If <条件表达式> Then • 语句块1 • Else • 语句块2 • End IF • 这种结构的流程图如下图所示:
选择结构程序设计 多分支结构(If … Then … ElseIf … 语句) 多分支结果是双分支结构的一种特例,就是在双分支结构的第二个分支中在加上几个分支,达到多重条件的判断。它的语法可以表示如下: If <条件表达式1> Then 语句块1 ElseIf <条件表达式2> Then 语句块2 ElseIf <条件表达式3> Then 语句块3 …… [Else 语句块n+1 ] End If 这种结构的程序流程图见下页
F 条件表达式2 …… F 条件表达式n T 语句块2 T 开始(start) 语句块n+1 语句块n …… F 条件表达式1 T 语句块1 …… 结束(End) 选择结构程序设计
选择结构程序设计 Private sub form_click() Dim x as integer X=val(inputbox(“请输入一个整数x”)) If x>=10 goto exits x=x^2+2*x+32 print x exits: x=x+100 print x End sub If...Goto结构 Visual Basic提供了一种控制If...goto语句,这种控制语句主要用于程序的出错处理或者是根据条件提前结束程序的操作。这种语句的格式是: If<表达式> goto 行号/标签 <程序段1> 行号/标签: <程序段2> 当表达式的值为“真”时,程序跳到行号/标签处,继续执行程序段2,否则将就先执行程序段1,然后再执行程序段2。这种结构就相当于单分支的选择结构。
选择结构程序设计 嵌套结构 在一个If … Then … Else结构的一个或者几个语句块中包含一个或若干个If … Then … Else结构的语句称为嵌套结构。这种结构的语法可以表示如下: If <条件表达式> Then [If <条件表达式> Then … Else … End If] Else [If <条件表达式> Then … Else … End If] End If 实际上可以看出,这里只是用一个If … Then … Else结构代替了前面的单分支结构或双分支结构中的语句块而已。这里要注意的就是其中的关键字的个数的匹配,也就是说一个If一定要和一个End If相匹配,否则程序将会出错。
选择结构程序设计 Select case 结构 这种结构就是根据我们对于一个事件的不同的选择而使其出现不同的结果。实际上是对多分支结构的另一种表达方式,目的就在于增强程序的可读性,它的理解方法完全和上面所讲述的多分支结构一样,只是在语法上有一定的不同。这种结构的语法结构如下所示,下图是这种结构的程序流程图。 Select case 表达式 Case 常量表达式1 语句块1 Case 常量表达式2 语句块2 …… [Case Else 语句块n+1 ] End select 这种结构的程序流程图见下页
开始( start ) …… 选择条件( select case ) 表达式 …… 常量表达式1成立,执行语句块1 常量表达式2成立,执行语句块2 常量表达式n+1成立,执行语句块n+1 End select …… 结束(End) 选择结构程序设计
选择结构程序设计 • 条件函数 • 在Visual Basic中还提供了两个条件函数,这两个函数分别是:IIF函数和Choose函数,用IIF函数代替IF语句,用Choose函数代替select case语句,但是这两个函数只能用于简单的判断场合。 • 1) IIF函数 • IIF函数的形式: • IIF(表达式,条件为真(true)的值,条件为假(false)的值) • 例如:判断税率的程序可以写成如下:10万元以上扣除15%,10万元以下扣除10%,写成程序就是: • TaxRate = IIF(money > 10,0.15,0.1) • Tax = TaxRate * money • 求两个数中较小的一个的程序代码: • Min = IIF (x>y, y, x)
选择结构程序设计 • Choose函数 • Choose函数的形式: • Choose(Nvar,ret1,ret2,……) • 其中:Nvar是一个数值类型的变量,ret1是当Nvar为1时的返回值,ret2是当Nvar为2时的返回值,等等以此类推。 • 例如:可以根据我们输入的数字来判断运算符的种类: • Nop =InputBox(“请输入运算符号码”) • Op =choose(Nop,“+”,“-”,“*”,“/”,“^”) • 这里当输入1时,op的值为“+”,2时为“-”等等。注意当输入不在1---5之间时,函数将返回一个NULL值;当输入的是一个小数时,系统将先对这个小数取整。然后进行判断运算。
选择结构程序设计 • On-goto语句 • On-goto类似于select case语句,用来实现多分支的结构控制,可以根据不同的条件从多种处理方案中选择一种方案执行。这种语句的结构是: • On 数值表达式 GoTo 行号列表|标签列表 • 该语句的功能是:根据“数值表达式”的值,将其四舍五入处理后得到一个整数,然后根据这个整数的值决定自己转移到第几个行号|标签处继续执行。行号列表|标签列表中的每两个行号|标签之间用逗号隔开。例如: • On (x+y)/2 goto 23,12,line2,line5,exits • 这个语句执行的情况是: • 当(x+y)/2=1时,程序从标签为23的那一行开始往后执行; • 当(x+y)/2=2时,程序从标签为12的那一行开始往后执行,以此类推。
选择结构程序设计 • On error goto语句 • 该语句的功能是启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。 • 如果不使用 On Error 语句,则任何运行时错误都是致命的;也就是说,结果会导致显示错误信息并中止运行。 • 该语句的语法是: • On Error GoTo 行号|标签 • 启动错误处理程序,且该例程从必要的 line参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line必须在一个过程中,这个过程与 On Error语句相同; 否则会发生编译时间错误。 • On Error Resume Next • 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo • On Error GoTo 0禁止当前过程中任何已启动的错误处理程序。
1. 关系运算符 VB提供的关系运算符有以下6种,如表4-1所示。
2. 关系表达式 关系表达式的格式为 〈表达式1〉〈关系运算符〉〈表达式2〉[〈关系运算符〉〈表达式3〉…] 运算符的优先顺序