资源描述
第5章基本控制结构,(时间:9次课,18学时),第5章基本控制结构,学习目的与要求:VisualBasic的基本控制结构是指在使用结构化的程序设计语言来把相关的命令按照一定的控制结构组成命令的序列,主要包括:顺序结构、选择结构和循环结构。本章的内容是使读者初步认识结构化程序设计语言,了解结构化程序设计语言的有关特点,掌握VisualBasic进行程序开发的一般过程。,第5章基本控制结构,5.1控制结构概述5.2顺序结构5.3选择结构5.4循环结构5.5上机实训5.6本章习题,5.1控制结构概述,计算机可以实现很多功能,但是这些功能都是依靠人事先编制好的程序来进行指导的,所以,程序的编写也就是对功能完成的控制流程。在学习程序设计前我们必须了解算法的基本内容。,5.1.1算法,1算法的概念算法:指用计算机解决某一问题的方法和步骤。算法分为两类:数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。非数值算法:用于对非数值信息进行查找、排序等。,5.1.1算法,2算法的特征确定性:指算法的每个步骤都应确切无误,没有歧义。可行性:指算法的每个步骤必须是计算机能够有效执行、可以实现的,并可得到确定的结果。有穷性:指一个算法应该在有限的时间和步骤内可以执行完毕的。输入性:指一个算法可以有0或多个输入数据。输出性:指一个算法必须有一个或多个输出结果。,5.1.1算法,3算法的评价主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。4算法的描述一般常用流程框图来描述算法。,5.1.1算法,5.基本算法结构“结构化程序设计方法”规定算法有三种基本结构:顺序结构、选择结构和循环结构。,5.1.2程序设计规则,1VB代码书写规则2语句书写规则3程序的注释方式,5.2顺序结构,程序的执行都是按照程序代码的书写顺序,从上到下一条一条的执行,这种结构称为“顺序结构”。顺序结构是最简单的一种结构,该结构按语句排列的先后顺序执行,不会跳过某一条语句或者不按照顺序执行。一般的程序设计语言中,顺序结构主要由赋值语句、输入输出语句等构成。,5.2.1赋值语句,赋值语句是任何程序设计中最基本的语句,赋值语句都时顺序执行的。赋值语句的形式为:let变量名=表达式它的作用是计算右边表达式的值,然后赋给左边的变量,表达式的类型应该与变量名的类型一致。其中的let保留字可以省略。,5.2.1赋值语句,例如:x=2把2赋给xy=x*3计算x*3的值,得6,把6赋给yx=x+1计算x+1的值,得3,把3赋给xa=Hello把“Hello”赋给aText1.Text=你好!把“你好!”赋给Text1的Text属性,5.2.1赋值语句,在使用赋值语句时需要注意以下几点:当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度;当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型再赋值,但当表达式中有非数字字符或空串,则出错。任何非字符类型赋值给字符类型,自动转换为字符类型;当逻辑型赋值给数值型时,True转换为-1,False转换为0;反之,非0转换为True,0转换为False;赋值号左边的变量只能是变量,不能是常量、常数符号、表达式,否则报错;不能在一句赋值语句中,同时给各变量赋值;在条件表达式中出现的=是等号,系统会根据=号的位置,自动判断是否为赋值号;N=N+1是累加中常见的赋值语句,表示将N变量中的值加1后再赋值给N。,5.2.2输入数据,编写程序的目的是为了让计算机能为我们完成设定的工作,因此就必须对它下达命令,并将需要处理的数据输入给计算机,然后计算机把处理的信息反馈回来,报告任务是否完成。以上就是所谓的人机对话或交互功能,尤其是在Windows操作里需要进行更多的输入工作,例如需要填写各种各样的表格,设置程序的重要参数,把数据输入给计算机等。,1使用文本框输入数据,一个程序如果没有输入操作,必然缺乏灵活性。接收用户输入数据的最直接的方法就是使用文本框。,2使用inputbox输入数据,InputBox函数用于接受用户键盘输入的数据,也称为输入框。语法:InputBox(对话框字符串s,标题s,文本框字符串s,横坐标值n,纵坐标值n帮助文件s,帮助主题号n),5.2.2输出数据,1使用标签控件输出最简单的文本显示控件是标签(Label),标签(Label)最常用的功能是区分窗体上不同的项目,每一个标签用来说明禁挨着它的编辑域的信息。这种用途的标签一般在设计时建立,而且显示的说明内容通过属性窗口直接赋给Caption属性。同样,标签(Label)也可以在运行时显示任意类型的数据,但是要注意输出的内容要处理为字符形式。,5.2.2输出数据,2使用Print输出Print方法用于在窗体、图片框和打印机上显示(输出)文本。语法:对象Print表达式列表说明:对象名:可以是Form(窗体)、Debug(立即窗口)、Picture(图片框)、Printer(打印机)。省略此项,表示在当前窗体上输出。表达式列表:是一个或多个表达式,若为多个表达式,则各表达式之间用“,”或“;”隔开。省略此项,则输出一个空行。定位输出:在Print方法中,可以使用Tab函数对输出项进行定位。,5.2.2输出数据,3使用MsgBox函数输出MsgBox函数用于向用户发布提示信息,要求用户做出必要的响应,也称为消息框。MsgBox函数在对话框中显示消息,对话框中包含命令按钮,由用户单击按钮。语法:MsgBox(消息文本s,显示按钮n标题s,帮助文件s,帮助主题号n)其中:消息文本:在对话框中作为消息显示的字符串,用于提示信息。如果消息的内容超过一行时,可以在每行之间插入回车符(Chr(13)或换行符(Chr(10)进行换行。标题:在对话框标题栏中显示的标题,缺省时为空白。显示按钮:是C1+C2+C3+C4的总和,用来指定显示按钮的数目、形式、使用的图标样式。,5.3选择结构,分支结构用于判断并分支,根据判定的结果(True或Fa1se)决定执行语句,分支结构有三种形式。IfThen结构IfThenElse结构SelectCase结构,5.3.1IfThen结构,IfThen结构表示“如果就”,是条件转移语句,根据条件测试后的结果,决定程序的下一步。语法:If条件Then语句或者:if条件Then语句块EndIf其中,条件(表达式)的值应为Boolean(布尔型)。若条件为True,则执行Then关键字后面的语句或语句块;否则,直接执行下一条语句或“EndIf”的下一条语句。若条件的值为数值,则当值为零是False,而任何非零数值都看作True。,5.3.2IfThenElse结构,IfThenElse结构表示“如果就否则”,比IfThen结构的条件选择和范围更广。IfThenElse结构可以采用如下的结构:IfThenElseEndIf这种结构也叫做双分支结构,5.3.2IfThenElse结构,说明:不管有几个分支,程序执行了一个分支后,其余分支不再执行;ElseIf不能写成ElseIf;每一个块结构都必须以If开始,以EndIf结束。当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块;内层嵌套的块结构中除了满足该层规定的条件外,还必须首先满足外层结构中相应位置的条件。VB中对块嵌套的层数没有限制,在嵌套的块结构中仍然可以继续嵌套其他的块结构,但嵌套时外层的块结构必须完全“包住”内层的块结构,不能相互“骑跨”。如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚,便于阅读和查错。,5.3.3SelectCase结构,SelectCase结构用于多重选择的情况语法:SelectCase变量I表达式Case值1语句块1Case值2语句块2CaseElse语句块nEndSelect,5.3.3SelectCase结构,SelectCase语句功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。SelectCase语句的执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect后面的语句;如果没找到,则执行CaseElse后面的语句块,然后执行EndSelect后面的语句。,5.3.3SelectCase结构,“表达式列表”形式有以下3种:(1)一个表达式或用逗号隔开的若干表达式(2)表达式1To表达式2(3)Is关系运算符表达式也可以同时设置多个不同的范围,用逗号(,)将它们分隔开。例如,-10,1T0100。SelectCase只计算一次表达式值,然后将表达式的值与结构中的每个Case的值进行比较。如果相等,就执行与该Case的语句块。如果没有相匹配,则执行CaseElse子句中的语句。,5.3.4IIf函数,函数形式:IIf(表达式,当条件为True时的值,当条件为False时的值)例:求X、Y中大的数,并放入变量max中。PrivateSubCommand5_Click()Dimx,y,maxasintegerX=inputbox()Y=inputbox()Max=iff(xy,x,y)EndSub,5.4循环结构,循环结构非常适合于解决处理的过程相同、处理的数据相关,但处理的具体值不同的问题。我们把能够处理这类问题的语句称为循环语句。循环是在指定的条件下多次重复执行一组语句。VB中提供了两种类型的循环语句:计数循环语句和条件型循环语句,5.4.1For循环语句,For循环语句也叫做知道循环次数的计数型循环语句形式:For循环变量=初值To终值Step步长语句块ExitFor语句块Next循环变量,5.4.1For循环语句,说明:循环变量必须为数值型步长一般为正,初值小于终值;若为负,初值大于终值;缺省步长为1;语句块可以是一句或多句语句,称为循环体;ExitFor表示当遇到该语句时,退出循环体;执行Next的下一句;循环次数=int(终值-初值)/步长)+1退出循环后,循环变量的值保持退出时的值;在循环体内对循环变量可多次引用,但不要对其赋值,否则影响结果。,5.4.2Do循环结构,Do循环有两种形式。即“当型”循环(DoWhile结构)和“直到型”(While结构)循环。“当型”循环的定义如下:语法:DoWhile|Until条件语句块ExitDo语句块Loop,5.4.2Do循环结构,“直到型”循环的定义如下:语法:Do语句块ExitDo语句块LoopWhile|Until条件,5.4.2Do循环结构,“当型”循环的步骤:执行DoWhile循环时首先测试条件;只要条件为True就执行语句块,然后再回到DoWhile语句测试条件:如果条件为False,则跳过所有语句到循环体外。“直到型”循环与“当型”循环所不同的是先执行语句,然后测试条件,只要条件为True就执行语句,然后再测试条件;如果条件为False,则跳过循环体,这种“直到型”循环保证语句块至少被执行一次。,5.4.3循环嵌套,嵌套指在循环体内又包含了一个完整的循环结构。循环嵌套对For循环和DoLoop循环均适用。说明:嵌套时,内层循环必须完全包含在外层循环之内,不能相互“骑跨”。在循环的嵌套中,内层循环和外层循环应该使用不同的循环控制变量。在多重循环的任何一层循环中都可以使用ExitDo或ExitFor退出循环,但要注意只能退出ExitDo或ExitFor语句所对应的最内层循环,而不是一次退出多层循环。,
展开阅读全文