1、Visual Basic,程序设计教程,第七讲,VB程序控制结构(2),第4章 VB程序设计,从结构化程序设计的流程来说,程序可以分为3种基本结构:顺序结构、分支结构和循环结构。无论采用哪一种程序设计语言,都要使用这些结构,而且应该严格遵循结构化设计的规则。,第4章 VB程序设计,4.1 顺序结构程序设计 4.2 分支结构程序设计 4.3 循环结构程序设计 4.4 数组与控件组 4.5 VB工程元素设计基础 4.6 常用算法设计,本讲内容,4.3 循环结构程序设计,4.3 循环结构程序设计 一、 循环的基本概念 1. 循环结构的含义循环是指从某处开始有规律地重复执行某一程序段。被重复执行的程序
2、段称为循环体。 2. 循环结构的形式 前置循环结构(WhileWend) 后置循环结构(DoLoop) 计数循环结构(ForNext),二、 前置循环结构(WhileWend),1. 格式: While 循环体语句组Wend 2. 流程框图,3. 执行的方式 (1) 执行While语句,判断条件是否成立。 (2) 如果条件成立则执行循环体语句组,否则执行Wend下面的语句。 (3) 执行到Wend语句则返回到(1)继续执行。,4. 例47(P-81):使用WhileWend循环结构,编写程序求1100的和。,5. 注意点:由于循环结构中有从下向上的返回语句,所以特别要当心是否会出现“条件一直成
3、立”的情况,即条件是“永真”的。如果出现了这种情况程序会无限止地执行下去,这在程序设计中称为“死循环”。尽量要避免出现“死循环”。当程序出现“死循环”时,只要按键盘上的Ctrl+Break键就能中断程序的运行。,三、 后置循环结构(DoLoop),格式: Do循环体语句组Loop Until 2. 流程框图,3. 执行的方式 (1) 执行Do语句,进入循环结构。 (2) 执行循环体语句组。 (3) 执行到Loop语句,判断“条件”是否成立,成立则执行Loop Until下面的语句(退出循环),否则返回到(1)继续执行。,4. 例48(P-82):使用后置循环结构,编写程序求1100的和。,5.
4、 几点说明 (1) 从上面的前置循环结构和后置循环结构的对比中可以看出,所谓的前置、后置实际上说的是循环结构的控制判断条件所在的位置。 (2) 采用前置循环结构时判断在循环体开始之前,当条件不满足时,一次也不执行循环体语句组则直接退出循环结构;而采用后置循环结构判断在循环体开始之后,即使条件不满足时也至少执行了一次循环体。 (3) 前置和后置循环结构使用的条件正好相反,前置循环结构是条件成立时执行循环体语句组,而后置循环结构采用Loop Until是条件成立时退出循环结构。,6. 前置和后置循环结构有共同的问题: 循环的结束由条件控制,所以必须构造合适的条件表达式才能在合适的时候结束循环。 无
5、法预知循环执行的次数。 循环的控制变量是不明确的,其改变是在程序段内部完成的,容易被忽略或在程序段中被更改,导致循环不能正常结束。,四、计数循环结构(ForNext) 1. For循环语句 (一般用于循环次数已知) (1) 结构形式For 循环变量初值 to 终值 Step 步长循环体语句组Next 循环变量 比如:For X=A To B Step C循环体语句组Next X,(2) 工作流程,For X=A To B Step C,循环体语句组,Next X,(3) 说明 循环变量:是用做循环计数器的数值变量,也称为循环控制变量。 初值:循环控制变量的初值。 终值:循环控制变量的终值。 步
6、长:循环控制变量的增量。 初值、终值和步长都是一个常数或数值表达式 循环次数 例49(P-84)使用计数循环结构,编写程序求1100的和。,五、三种循环结构的比较 1. 比较说明 (1) 前置循环有时称为当型循环,用于处理问题的常见提法是“当满足条件时执行循环” (2) 后置循环有时称为直到型循环,用于处理问题的常见提法是“执行循环直到满足某个条件” (3) 计数循环有时称为做型循环,用于处理问题的常见提法是“做从A到B的循环”。,2. 举例说明例410:求阶乘n!。例411:求的近似值,公式为4*(1-1/3+1/5-1/7+),精度要求=10-5。例412:输出Fibonacci数列的前n项,当某一项的值大于等于1000时结束输出。(Fibonacci数列中的第1、2项的值为1,从第3项开始,任何一项的值是前2项的值相加),六、嵌套循环结构 1. 含义:循环体内含有循环语句的循环称为嵌套循环。上述的三种循环结构都可以做成嵌套循环。而且还可以相互嵌套。 2. 对于循环的嵌套,要注意以下事项: 内循环变量与外循环变量不能同名; 外循环必须完全包含内循环,不能交叉; 不能从循环体外转向循环体内,反之则可以。,正确 错误,例413、414、415,例4-13:打印九九乘法表。 例4-14:输出字母打印图形,图形如下图所示。,