1、基本语句 选择结构 多路分支结构 循环结构 主要内容主要内容案例案例3-1打印输出打印输出 通过这个简单的程序,可以掌握通过这个简单的程序,可以掌握Visual Basic中常用的几种基本语句,包括赋中常用的几种基本语句,包括赋值语句、打印语句、注释语句、结束语值语句、打印语句、注释语句、结束语句等。句等。1.1 案例说明案例说明程序执行时,单击窗体的任何一个位置,程序执行时,单击窗体的任何一个位置,顺序执行顺序执行“窗体单击窗体单击”事件中相应的语事件中相应的语句,执行后在窗体上会显示数字的不同句,执行后在窗体上会显示数字的不同排列以及不同的符号组合。这些不同数排列以及不同的符号组合。这些不
2、同数字和符号,是通过赋值语来取得数据,字和符号,是通过赋值语来取得数据,按照语句的先后顺序执行这些赋值语句,按照语句的先后顺序执行这些赋值语句,通过打印语句以及打印控制语句来完成通过打印语句以及打印控制语句来完成输出,在指定的位置显示相应的符号。输出,在指定的位置显示相应的符号。1.2 程序实现程序实现 1.界面设计界面设计新建一个工程,系统默认产生了一个新窗新建一个工程,系统默认产生了一个新窗体,无需添加其它控件。窗体的属性采用体,无需添加其它控件。窗体的属性采用系统的默认值。系统的默认值。2.代码设计代码设计Private Sub Form_Click()a=12345b=54321a=b
3、b=12345Print aPrint bPrinta=:b=#:c=$Print a;b;cPrintPrint a,b,cPrintPrint Tab(2);a;Space(4);b;Space(8);cEnd Sub1.3 相关知识相关知识 1.赋值语句:为变量提供数据,设置对象的属性。赋值语句:为变量提供数据,设置对象的属性。变量名变量名=表达式表达式(为变量提供数据)。(为变量提供数据)。对象名对象名属性名属性名=表达式表达式(为对象设置属性)(为对象设置属性)2.输出语句:可以把运算结果传送到窗体、图片框等对象显示,输出语句:可以把运算结果传送到窗体、图片框等对象显示,也可传送到打
4、印机用于打印。也可传送到打印机用于打印。Print的格式为:的格式为:Print,|;几点说明:几点说明:3.Cls方法:清除窗体或图片框上的文本或图形。格式如下:方法:清除窗体或图片框上的文本或图形。格式如下:Cls4.注释语句:注释语句:在在VB中用中用“”“”或或Rem标识。标识。5.结束语句:结束语句:End1.4 拓展知识拓展知识 1.赋值相容问题:赋值相容问题:2.与与Print语句有关的函数:语句有关的函数:1.5 案例案例1-2 这个程序可以观察这个程序可以观察“重叠显示重叠显示”和和“覆盖显示覆盖显示”两种输出方式。两种输出方式。相关知识:相关知识:1.如需要保留原来显示的内
5、容,或者需要部分覆盖原来的图案。可如需要保留原来显示的内容,或者需要部分覆盖原来的图案。可设置窗体对象的设置窗体对象的FontTransParent属性来实现。格式为:属性来实现。格式为:FontTransParent=True|False2.CurrentX和和CurrentY属性的作用是设置下一次显示或打印的水属性的作用是设置下一次显示或打印的水平和垂直坐标。格式为:平和垂直坐标。格式为:CurrentX=X CurrentY=Y返回返回2.1 求解一元二次方程案例说明求解一元二次方程案例说明一元二次方程一元二次方程ax2+bx+c=0的根取决于它的三个系数的根取决于它的三个系数a、b、c
6、。根据三个系数的具体值,判断出该一元二次方。根据三个系数的具体值,判断出该一元二次方程的根的情况。程的根的情况。当当a=0时不构成一元二次方程,只有一个根;时不构成一元二次方程,只有一个根;当当a0时,根的情况要计算时,根的情况要计算b2-4ac的值。的值。b2-4ac0时,方程有两个不相等的实根,时,方程有两个不相等的实根,b2-4ac=0时,该方程有两个相等的实根,时,该方程有两个相等的实根,b2-4ac0时则没有实根。时则没有实根。该程序要求从键盘输入该程序要求从键盘输入a、b、c三个系数,根据上述的三个系数,根据上述的几种情况做出不同的判断和处理,然后把这个方程的几种情况做出不同的判断
7、和处理,然后把这个方程的根显示出来。根显示出来。2.2 程序实现程序实现 1.界面设计:单击窗体后,显示一个输入框,从键盘输界面设计:单击窗体后,显示一个输入框,从键盘输入所需要的入所需要的3个系数个系数a、b和和c,然后进行计算。,然后进行计算。2.代码设计:代码设计:2.3 相关知识相关知识 选择结构就是根据给定的选择结构就是根据给定的“条件条件”是否满足,从两种或是否满足,从两种或多种可能的操作方案中选择一种操作执行。包括:多种可能的操作方案中选择一种操作执行。包括:1.行行If:If Then Else 2.块块If语句:语句:If ThenElseEnd If 块块If语句的几点说明
8、:语句的几点说明:条件满足?语句块1语句块2End If语句TF2.3 相关知识相关知识 3.ElseIf结构:可以解决多层嵌套问题。格式为:结构:可以解决多层嵌套问题。格式为:If ThenElseIf ThenElseIf ThenElseEnd IfFT条件2语句块2FT条件n语句块n+1语句块nEnd If条件1语句块1FT小结:两种结构的对比。小结:两种结构的对比。本案例中求解一元二次方程的根的算法中,前本案例中求解一元二次方程的根的算法中,前述的块述的块If嵌套的代码可以改为如下嵌套的代码可以改为如下ElseIf结构,结构,对比一下可以看出,用对比一下可以看出,用ElseIf结构取
9、代块结构取代块If嵌嵌套结构可以使得代码的层次变得简单了。套结构可以使得代码的层次变得简单了。返回返回3.1 判定成绩案例说明判定成绩案例说明从键盘输入一个学生的成绩,按照不同的分数区从键盘输入一个学生的成绩,按照不同的分数区域,给出不同的等级。例如分数域,给出不同的等级。例如分数90时,给出时,给出的等级是的等级是“优秀优秀”,80分数分数90时等级为时等级为“良好良好”,70分数分数80时等级为时等级为“中等中等”,60分数分数70给出的等级为给出的等级为“及格及格”,而当分,而当分数数60时,则为时,则为“不及格不及格”。也就是说根据给。也就是说根据给定的条件不同,有定的条件不同,有5种
10、选择,采用多路分支结种选择,采用多路分支结构语句。构语句。3.2 程序实现程序实现1.界面设计:添加界面设计:添加2个命令按钮和个命令按钮和1个标签。设置个标签。设置2个命个命令按钮的令按钮的Caption属性。标签属性。标签Lable1的的Caption属性属性设置为空。单击设置为空。单击“单击输入分数单击输入分数”按钮,显示一个按钮,显示一个输入框。等待输入成绩,在输入框中输入成绩后,输入框。等待输入成绩,在输入框中输入成绩后,单击输入框中的单击输入框中的“确定确定”按钮,则在窗体的标签上按钮,则在窗体的标签上显示这个分数所在的档次,单击另一个显示这个分数所在的档次,单击另一个“退出退出”
11、按按钮,则退出程序的执行。钮,则退出程序的执行。2.代码设计:对两个命令按钮的单击事件进行编程。代码设计:对两个命令按钮的单击事件进行编程。3.3 相关知识相关知识1.Select Case语句:又称为情况语句。一般格式为:语句:又称为情况语句。一般格式为:Select Case Case Case Case Case ElseEnd Select测试表达式测试表达式=?语语句句块块1语语句句块块2语语句句块块i语语句句块块n+1语语句句块块n3.3 相关知识相关知识“测试表达式测试表达式”可以是字符串表达式,也可以是数值表达式,而且可以是字符串表达式,也可以是数值表达式,而且在进入在进入Se
12、lect Case结构时必须具有确定的值。结构时必须具有确定的值。“表达式列表表达式列表”形式有形式有3种情况:种情况:(1)可以是一个表达式,也可以是多个表达式,但必须用逗号隔)可以是一个表达式,也可以是多个表达式,但必须用逗号隔开。例如:开。例如:Case 2,4,6,8表示测试表达式的值等于表示测试表达式的值等于2,4,6,8之一,就算满足。之一,就算满足。(2)表达式)表达式1 To 表达式表达式2。一般情况下,表达式。一般情况下,表达式1的值小于表达的值小于表达式式2的值。例如:的值。例如:Case-20 To 20表示表示“20测试表达式测试表达式20”。(3)Is 关系运算符关系
13、运算符 表达式。例如:表达式。例如:Case Is ab表示测试表达式的值大于等于表示测试表达式的值大于等于ab。3.3 相关知识相关知识Select Case情况语句可以应用于要处理的问题情况语句可以应用于要处理的问题需要从多个可能的方案中选择,虽然用嵌套的需要从多个可能的方案中选择,虽然用嵌套的If语句以及语句以及ElseIf语句也可以实现多路选择的结构,语句也可以实现多路选择的结构,但书写和阅读起来会显得比较杂乱,而使用但书写和阅读起来会显得比较杂乱,而使用Select Case语句将使得程序的结构更为清晰。语句将使得程序的结构更为清晰。比如在上一节介绍的求解一元二次方程根的程序,比如在
14、上一节介绍的求解一元二次方程根的程序,当当a、b、c确定且确定且a0时,构成一元二次方程,时,构成一元二次方程,根的值取决于根的值取决于b24ac的值。的值。b24ac有三种可有三种可能,等于能,等于0、大于、大于0和小于和小于0。如果用。如果用Select Case语句实现,可以编写代码如下:语句实现,可以编写代码如下:3.4 拓展知识拓展知识在使用在使用Select Case语句处理多路分支问题时,应避免语句处理多路分支问题时,应避免不同的不同的Case子句中的条件和相应的操作出现矛盾。子句中的条件和相应的操作出现矛盾。VB系统是按照系统是按照Case出现的次序,从上往下依次检查测出现的次
15、序,从上往下依次检查测试表达式的值是否与某个试表达式的值是否与某个Case子句指定的条件匹配,子句指定的条件匹配,当发现一个当发现一个Case子句具备匹配的条件后,其他的子句具备匹配的条件后,其他的Case子句都不起作用。而这种逻辑上的错误系统是不子句都不起作用。而这种逻辑上的错误系统是不会去检查的,因此,在使用会去检查的,因此,在使用Select Case语句时就要避语句时就要避免类似情况的出现。免类似情况的出现。返回返回4.1 验证歌德巴赫猜想案例说明验证歌德巴赫猜想案例说明素数的特征是只能被素数的特征是只能被1和它本身整除。验证和它本身整除。验证p是否是素数,是否是素数,我们只需在我们只
16、需在2到到p1之间能否找到一个能整除之间能否找到一个能整除p的数,的数,如果有,则如果有,则p不是素数,如果没有,则不是素数,如果没有,则p就是一个素数,就是一个素数,然后设置一个然后设置一个p是素数的标志是素数的标志fp=True。也就是说用。也就是说用2到到p-1的各整数去除的各整数去除p,判断余数是否为零,如果余数,判断余数是否为零,如果余数为零,则肯定能被整除。为零,则肯定能被整除。在寻找在寻找2到到p-1之间的一个能被之间的一个能被p整除的数,就是要把整除的数,就是要把2到到p-1的所有的数都作为被除数的所有的数都作为被除数p的除数,进行除法运算。的除数,进行除法运算。这是一个重复循
17、环的过程,需要循环结构进行程序的这是一个重复循环的过程,需要循环结构进行程序的流程。而且这样的过程也是循环的,因为流程。而且这样的过程也是循环的,因为6到到100之间之间的偶数都需要寻找这样的两个素数,因此需要使用循的偶数都需要寻找这样的两个素数,因此需要使用循环的嵌套来实现。环的嵌套来实现。4.2 程序实现程序实现 1.界面设计:在窗体上添加一个命令按钮,把命令按钮界面设计:在窗体上添加一个命令按钮,把命令按钮的标题属性改为的标题属性改为“验证猜想验证猜想”,其余的属性采用系统的,其余的属性采用系统的默认值。然后调整命令按钮到合适的位置。默认值。然后调整命令按钮到合适的位置。2.代码设计:在
18、这个程序中同时使用了选择结构和循环代码设计:在这个程序中同时使用了选择结构和循环结构以及循环结构的嵌套。因为是要验证结构以及循环结构的嵌套。因为是要验证6到到100之间的之间的所有偶数,设偶数为所有偶数,设偶数为n,且从,且从6一直变化到一直变化到100,采用了,采用了For循环。然后分别寻找这样的两个素数循环。然后分别寻找这样的两个素数p和和q,且,且npq,使用,使用Do Loop循环,当两个素数都找到了,则显循环,当两个素数都找到了,则显示这个偶数用相应的素数相加的形式显示出来。用示这个偶数用相应的素数相加的形式显示出来。用Print语句按照标准格式输出,每输出语句按照标准格式输出,每输
19、出4个表达式则换行,设置个表达式则换行,设置一个循环变量来控制打印输出,采用一个循环变量来控制打印输出,采用For循环控制换行。循环控制换行。4.3 相关知识相关知识1.循环结构:一段程序不止执行一次,重复执行多次,被重复执循环结构:一段程序不止执行一次,重复执行多次,被重复执行的部分称为循环体。循环控制结构的功能就是控制在什么条行的部分称为循环体。循环控制结构的功能就是控制在什么条件下进入循环、什么情况下退出循环。件下进入循环、什么情况下退出循环。VB提供三种:提供三种:(1)WhileWend循环语句;循环语句;(2)DoLoop循环语句;循环语句;(3)ForNext循环语句。循环语句。
20、下面我们对这三种循环分别加以说明:下面我们对这三种循环分别加以说明:4.3 相关知识相关知识 2.WhileWend循环循环While循环的一般格式为:循环的一般格式为:While Wend执行过程:执行过程:应用举例:应用举例:注意事项:注意事项:F计算“条件”的值条件是否为真?执行循环体T4.3 相关知识相关知识3.DoLoop循环:可以使用循环:可以使用“While”和和“Until”来控制循环,来控制循环,“While”和和“Until”可以放在可以放在Do语句中,也可以放在语句中,也可以放在Loop语句中,使用十分语句中,使用十分方便。方便。Do循环有两种语句格式:循环有两种语句格式
21、:格式格式1:Do While|Until Loop这种格式的这种格式的Do循环是循环是“先判断,后执行先判断,后执行”。执行循环体条件是否为真?FTFT条件是否为真?执行循环体4.3 相关知识相关知识3.DoLoop循环:循环:格式格式2:Do Loop While|Until“先执行,后判断先执行,后判断”。DoLoop While循环是先执行一次循环是先执行一次循环体,然后判断条件是否为循环体,然后判断条件是否为“真真”,如果为,如果为“真真”,则,则再执行循环体,如果为再执行循环体,如果为“假假”,则退出循环;,则退出循环;DoLoop Until循环是先执行一次循环体,然后判断条循环
22、是先执行一次循环体,然后判断条件是否为件是否为“假假”,直到条件为,直到条件为“真真”为止。这种结构的循为止。这种结构的循环总是至少会执行一次循环体。环总是至少会执行一次循环体。FT执行循环体条件是否为真?执行循环体TF条件是否为真?4.3 相关知识相关知识DoLoop循环的应用实例:循环的应用实例:4.3 相关知识相关知识4.ForNext循环循环WhileWend循环和循环和DoLoop循环是用指循环是用指定的条件是否满足来控制循环的,循环体的执行定的条件是否满足来控制循环的,循环体的执行次数是未知的。如果事先已经知道应循环的次数,次数是未知的。如果事先已经知道应循环的次数,可以采用可以采
23、用ForNext循环。格式为:循环。格式为:For=To Step 循环体循环体Next 4.3 相关知识相关知识ForNext循环的几点说明:循环的几点说明:(1)循环变量也称为循环控制变量,必须为数值型。)循环变量也称为循环控制变量,必须为数值型。(2)循环变量的初值、终值和步长可以是常量、变量或表达)循环变量的初值、终值和步长可以是常量、变量或表达式。式。(3)For语句称为语句称为“循环起始语句循环起始语句”,它的作用是确定循环,它的作用是确定循环变量的值如何变化,从而控制循环的次数;变量的值如何变化,从而控制循环的次数;Next语句是语句是“循环终端语句循环终端语句”,它的作用是标志
24、循环结构的范围。,它的作用是标志循环结构的范围。(4)For语句和语句和Next语句之间的语句块就是循环体,且语句之间的语句块就是循环体,且For和和Next必须成对出现,缺一不可。必须成对出现,缺一不可。(5)For语句中的语句中的“循环变量循环变量”与与Next语句中的语句中的“循环变量循环变量”必须是同一个变量,每次循环执行到必须是同一个变量,每次循环执行到Next语句时,循环变语句时,循环变量按步长量按步长Step增值。增值。(6)步长)步长Step可以为负数,但不可为可以为负数,但不可为0,否则出现死循环。,否则出现死循环。如果步长如果步长Step为为1时,则时,则“Step 1”可
25、以省略。可以省略。4.3 相关知识相关知识ForNext循环的执行过程:循环的执行过程:(1)首先执行)首先执行For语句。语句。For语句的作语句的作用包括给循环变量赋以初值,将初用包括给循环变量赋以初值,将初值与终值做比较,以判断是否执行值与终值做比较,以判断是否执行循环体,并自动记下终值和步长。循环体,并自动记下终值和步长。(2)如果循环变量的值没有超过终值,)如果循环变量的值没有超过终值,则执行一次循环体,如果超过终值则执行一次循环体,如果超过终值就结束循环,执行就结束循环,执行Next后面的语句。后面的语句。(3)执行)执行Next语句,语句,Next语句相当于语句相当于“循环变量步
26、长循环变量步长循环变量循环变量”,将循环变量增加一个步长再赋给循将循环变量增加一个步长再赋给循环变量,再判断循环变量的值是否环变量,再判断循环变量的值是否超过终值,如果没有超过,则执行超过终值,如果没有超过,则执行循环体,如果超过,则退出循环。循环体,如果超过,则退出循环。循环变量获得初值循环变量超过终值?执行循环体循环变量增加步长TF4.3 相关知识相关知识ForNext循环的注意事项:循环的注意事项:(1)For循环的循环体内不应再有给循环变量的赋值操作,否则循环的循环体内不应再有给循环变量的赋值操作,否则将会影响原有的循环控制状况。将会影响原有的循环控制状况。(2)在)在For循环中,循
27、环变量可以在循环体内引用,也可以不被循环中,循环变量可以在循环体内引用,也可以不被引用。引用。(3)循环变量等于终值时,还要执行一次循环体,直到)循环变量等于终值时,还要执行一次循环体,直到“超过超过”终值为止才终止循环过程。终值为止才终止循环过程。(4)“超过超过”有两种含义,即大于或小于。当步长为正值时,有两种含义,即大于或小于。当步长为正值时,循环变量大于终值称为循环变量大于终值称为“超过超过”;当步长为负值时,循环变量;当步长为负值时,循环变量小于终值则为小于终值则为“超过超过”。(5)循环的次数可以从)循环的次数可以从For语句中的初值、终值和步长计算出来,语句中的初值、终值和步长计
28、算出来,计算公式如下:计算公式如下:1-步长循环初值循环终值循环次数4.3 相关知识相关知识5.ForNext循环的嵌套:循环的嵌套:循环体的语句块中可以包含任何的循环体的语句块中可以包含任何的Visual Basic语句,包括语句,包括选择语句和循环语句。用的比较多的是二重循环。选择语句和循环语句。用的比较多的是二重循环。二重循环的执行过程是外循环执行一次,内循环执行一遍,二重循环的执行过程是外循环执行一次,内循环执行一遍,即外重循环变量每变化一个步长,则内重循环变量应该从即外重循环变量每变化一个步长,则内重循环变量应该从初值变化到终值,再进行下一次外循环的循环变量的变化,初值变化到终值,再
29、进行下一次外循环的循环变量的变化,如此反复,直到外循环结束,即外重循环变量的值超过了如此反复,直到外循环结束,即外重循环变量的值超过了终值。终值。在使用嵌套循环时,要注意以下几点:在使用嵌套循环时,要注意以下几点:(1)由于内重循环变化比较块,执行的次数比较多,因此,)由于内重循环变化比较块,执行的次数比较多,因此,与循环过程无关的操作应该尽量移到循环外,可以提高效与循环过程无关的操作应该尽量移到循环外,可以提高效率。率。(2)在多重循环中,各层循环的循环控制变量不可以同名。)在多重循环中,各层循环的循环控制变量不可以同名。(3)外重循环必须完全包含内循环,不能交叉。)外重循环必须完全包含内循环,不能交叉。4.3 相关知识相关知识6.ForNext循环嵌套的退出:循环嵌套的退出:Visual Basic提供了提供了Exit(出口)语句用来实现提前结束循环,(出口)语句用来实现提前结束循环,这样可以根据需要退出循环,执行循环结构以后的语句。这样可以根据需要退出循环,执行循环结构以后的语句。有条件的强制退出循环的形式为:有条件的强制退出循环的形式为:If Then Exit DoIf Then Exit Do循环嵌套的应用:循环嵌套的应用:返回返回