何成
摘 要:本文主要介绍了循环语句构成的3个基本要素:初始值、循环条件、使循环趋于结束的语句,详细解释了“当型循环”和“直到型循环”2种构成形式及二者的相似与区别。通过对具体的数学问题求解对比分析了Visual Basic程序设计语言中6中基本的语法结构,并描述了2种Exit语句的用途并对应实际的具体案例。本人为Visual Basic程序设计初学者提供了一个有效的学习利器,使初学者从形式灵活多样的语法结构中脱离开来并真正掌握程序设计的主旨。
关键词:循环条件 步长 事件驱动
中图分类号:G712 文献标识码:A 文章编号:1672-3791(2018)02(b)-0189-02
程序设计语言语句结构一般分为顺序结构、选择结构和循环结构,顺序结构和选择结构只能处理一些简单的不需要重复的问题,但在解决实际问题过程中,有些问题是在某一特定条件下在被反复的执行,需要对某条语句或某段语句反复执行,这种语句就是循环结构。
Visual Basic是目前常用的面向对象程序设计语言,它是在Basic语言基础上发展而来的,具有可视化的图形界面,以事件驱动的方式为运行的机制,功能比较强大。Visual Basic循环语句形式非常灵活,它不但提供了6种基本的循环语句格式,还提供了Exit语句参数,灵活多样的变化形式往往造成初学者的困惑,本文将对各语句形式做统一的辨析与讨论,希望可以成为VB使用者的有效的利器。
1 循环语句基本思想
1.1 构成循环的基本要素
循环语句由3个基本要素构成:循环的初始值、循环条件、使循环趋于结束的语句,有很多地方简单的称这3者为循环初值、循环终止及循环变化值。一个循环体必须由这3部分构成,否则很容易出现死循环,一个程序设计初学者最容易犯的错误就是编写死循环。
循环的初始值是设置循环变量的初值;循环条件表达式作为设置循环终止的条件,当条件为真,则继续执行循环体,否则结束循环;使循环趋向于结束的语句,一般是以改变循环变量值的形式出现,很多时候也称之为“步长”,这也是初次接触循环语句的程序设计者最容易忽略的地方。
1.2 循环语句的分类
循环语句一般由“当型循环”和“直到型循环”2种形式构成,二者的区别在于“当型循环”先判断循环终止条件,满足此条件则执行循环体语句,而“直到型循环”是先执行一次循环体语句再判断循环条件。这2种语句一般情况下并无区别,只有当循环的初始值不满足循环条件时,“当型循环”一次循环语句没有执行,而“直到型循环”执行了一次循环语句。
1.3 循环结构的应用
循环语句的用处非常灵活,可解决已知循环次数的问题,如:求自然数1~100的累加和是多少?可以解决循环次数不固定的问题,如:表达式s=1+2+……+n中,当s〉3000是n的值最小是多少?这2种问题均可以通过设置初值、终止及步长来解决。
2 Visual Basic中的循环语句形式
2.1 基本语句形式
Visual Basic提供了6种基本的循环语句,分别是:While语句、Do while……loop语句、Do……loop while语句、Do Until……loop语句、Do……loop Until语句、For语句。Visual Basic还提供了一种特殊的Exit语句可以跳出循环,它具有2种基本形式,分别是:Exit do语句,Exit for语句。
2.2 基本循环语句的具体例题分析
此处以循环语句的入门程序“求自然数1~100的累加和是多少?”为例,分别利用不同的语句实现对问题的求解,此处为了重点对比分析循环语句构成的差异,而暂且忽略声明语句等一些基本语句,其基本思想同样适用于其他程序设计语言。这里设置存储累加和的变量为s,并通过s=0对变量s赋初值;设置循环变量为i,并通过i=1对变量i赋初值。具体循环结构如表1所示。
这里前5种一般用于求解循环终止条件已知的问题,最后一种一般用于求解已知循環次数的问题(当循环变量步长为1此处可以省略step1)。而前3种是先判断循环条件再执行循环体,第4及第5种是后判断循环条件再执行循环体,这里如果循环变量的初始值i=101,则前3种程序运行的结果s为0,而第4及第5种程序运行的结果s为101。
本程序例题为各种程序设计语言循环结构的入门程序,以此程序为基础通过简单修改循环的初值、终值、变化值可以求解很多问题,例如:自然数1~100的偶数和是多少?自然数1~100的奇数和是多少?100~200间所有自然数的和是多少?6的阶乘是多少?根据特定的数学公式,可以求解圆周率π及自然对数e等等复杂的问题,看似复杂的问题难处只在于数学求解公式,程序设计思想跟本题无任何不同之处。
2.3 基本循环语句的各语句适用范围
很多题目可以采用任何一种语句实现,如上文所示例题,但For语句形式上简单明了,它集循环初值、终值、步长为一条语句,但它适用范围窄,如果循环次数不确定则不能用此语句求解。而另外5种语句语法灵活,基本可以完成各种各样的循环操作。
2.4 循环语句中的Exit语句
Exit语句分为Exit do语句和Exit for语句2种。其中,Exit do语句用于Do……loop循环体中,当程序中遇到Exit do语句则跳出循环,执行loop后语句;Exit for语句用于For……next循环体中,当程序中遇到Exit for语句则跳出循环,执行next后语句。
这里以求解上文中提到的“表达式s=1+2+……+n中,当s〉3000是n的值最小是多少?”为例进行程序的简单编写。这里设置存储累加和的变量为s,并通过s=0对变量s赋初值;设置循环变量为i,并通过i=1对变量i赋初值。则题目的具体求解过程如表2所示。
循环语句还可以解决“水仙花数”、“素数”、“完数”及“最大公约数”等这种有趣的数学问题,还可以通过双重循环来解决“排序”、“杨辉三角”、“百钱百鸡”等复杂的数学问题,对于常见的“鸡兔同笼”也可轻易求解。
3 结论
(1)程序设计语言语句结构一般分为顺序结构、选择结构和循环结构,顺序结构和选择结构只能处理一些简单的不需要重复的问题,而循环语句可以解决对某条语句或某段语句反复执行的问题。
(2)循环语句由循环的初始值、循环条件、使循环趋于结束的语句3个基本要素构成,循环语句一般由“当型循环”和“直到型循环”2种形式构成,当循环的初始值不满足循环条件时2种语句运算结果不同。
(3)以求解自然数1~100累加和为例对6种Visual Basic基本循环语句結构作了对比分析,辨析了各种结构的适用范围和优缺点。并具体解释了“当型循环”和“直到型循环”2种形式对程序结果的影响。
参考文献
[1] FrancescoBalena著,翔实组,翔实组.Visual Basic 6编程技术大全[J].2000.
[2] 求是科技,Visual Basic 6.0程序设计与开发技术大全[M].北京:人民邮电出版社,2006.
[3] 李晓辉,肖蓉晖.用VisualBasic编写控制程序方法[J].计算机工程与应用,1998(6):50-53.
[4] 龚沛曾,陆慰民,杨志强.Visual Basic程序设计简明教程[M].2版.北京:高等教育出版社,2003.
[5] 刘圣才,李春葆.Visual Basic 6程序设计导学[M].北京:清华大学出版社,2002.
[6] 张艳.新编Visual Basic程序设计教程:Visual Basic程序设计教程[M].北京:清华大学出版社,2014.
[7] 刘刚.Visual Basic程序设计与应用案例[M].北京:高等教育出版社,2003.
[8] 张东亮,张鑫,朱莉娟.新编VISUAL BASIC程序设计教程[M].北京:航空工业出版社,2005.
[9] 张荣华,殷士勇.Visual Basic程序设计与应用[M].北京:清华大学出版社,2008.
[10]教传艳,王果.Visual Basic 6.0程序设计完全自学手册[M].北京:人民邮电出版社,2009.