VB循环语句
【教学目标】
了解程序中循环的基本概念
学会用计数循环、条件循环语句编写简单程序。
培养学生分析问题与解决问题的能力
【教学方法】
启发式教学、讲解与讨论、实验与探究
【教学过程】
一、引言
在上一节中,我们已经学习了判断语句,因为if语句与我们的日常逻辑思维过程几乎完全相同,所以学起来很容易掌握。学会了判断语句,会让我们的程序变得更聪明。
?本节课学习循环语句。VB的循环语句有多种,我们只学习最常用的两种。(一节课学习一种)只要理解了这两种,其他循环语句基本上可以无师自通。
(展示:for…next循环与do…loop循环的语法格式)
?
二、几点看法
?在各种程序语言的学习中,对初学者来说都会遇到三个坎:一是变量;二是循环;三是数组。因为这几个概念相对于比较直观的赋值、判断等概念来说显得十分抽象。在讲到这三个问题的时候,老师需要从学生的角度出发,了解学生心里是怎样理解的,并给予恰当的引导和帮助,使学生能顺利度过难关。如果过了这三关,才能算是基本入门了。
?如果说判断语句会让我们的程序更聪明,那么循环语句有什么作用呢?那就是高效。我们常说一个程序可能会轻松完成十个人或者上百人的工作,这种高效率往往都是通过循环语句来体现的。老师应当从这一点入手,才会比较容易地让学生对循环语句有一个基本的印象。
?三、教学要点:
1、for…next循环语句的语法格式
2、什么时候能用到循环语句?用循环语句有什么好处?
3、循环的过程是如何进行的?
4、体验一下循环的高效和神奇
?注:关于循环语句的语法,只强调什么是关键字匹配、什么是循环体即可。可以把for…next语句和do…loop语句一同展示,只强调它们的一般区别,前者用于已确定循环次数的情况下,后者用于不能确定循环多少次的情况下。
?四、教学过程设计
????1、从一个简单的实例引入:什么时候用到循环?
假如有这样一项工作,我们需要批量打印一些标语,比如要把“爱护环境,人人有责”这句话打印三遍,你会怎样写代码?
?
Private?Sub?Command1_Click()?
????Dim?a?As?String?
????a?=?"爱护环境,人人有责"?
????Print?a?
????Print?a?
????Print?a?
End?Sub?
?
运行一下,效果是这样:
假如我们要把这句话打印十遍,你会怎样做?是不是把Print a?这行语句复制10行?没有错,完全可以。
?
但是如果我们要打印100行,或者1000行,怎么办?
?
显然,这种方法毫无效率可言。既然每一行都是循环往复地重复完全相同的工作,那么我门只需要告诉它做多少次就可以了,这就要用到循环语句。
?
代码可以这样写:
Private?Sub?Command2_Click()??
???? Dim?a?As?String??
??? ?Dim?i?As?Integer??
????a?=?"爱护环境,人人有责"??
????For?i?=?1?To?10??
??????Print?a??
????Next??
End?Sub?
上面的10就是告诉程序,要把下面循环体中间的代码重复执行多少次,你可以把它改成100,1000,或者10000都可以,它可以在瞬间帮你完成任务。
?
2、循环语句是如何工作的?
实例:求1-10之间所有整数的和。
?
先给出代码:
Private?Sub?Command3_Click()?
????Dim?h,?j?As?Integer????'h为和,j为被加数?
????For?j?=?1?To?10?
????????h?=?h?+?j?
????????Print?j,?h?
????Next?
End?Sub
?
在我们没有给变量h、j赋值以前,它们的默认值都是0;
注意:h=h+i?这个表达式在数学上是不成立的,但在程序语言中经常用到。它和数学表达式中的含义完全不同:它表示将h当前的值加上j的值再重新赋给h,换言之,就是让h等于它的当前值再加上j的值。
我们先来推测一下:
当第1次循环的时候,h=0,??j=1,??h+j=1
当第2次循环的时候,h=1,??j=2,??h+j=3
当第3次循环的时候,h=3,??j=3,??h+j=6
当第4次循环的时候,h=6,??j=4,??h+j=10
……
……
……
运行一下程序,看看和我们的推测是不是一样?
?
循环语句的工作原理就是这样的,是不是很简单?
?
五、作业:(梯度任务,任选一题)
????1、求1-100之间所有整数的和。
????2、显示一个IP地址段的所有IP地址列表:从172.16.23.0到172.16.23.255
?
参考代码:
1、(略)
2、提示:为了能显示所有行,应将结果显示在文本框中而不是窗口上。
?
代码如下:
?'添加一个文本框text1,并将MultiLine(允许多行)属性设为True?
'ScrollBars(滚动条)属性设为2?
Private?Sub?Command4_Click()?
????Dim?a,?b?As?String?
????Dim?i?As?Integer?
????a?=?"172.16.23."?
?Text1.Text?=?""?
For?i?= 0?To?255
b?=?a?&?CStr(i)?
Text1.Text?=?Text1.Text?&?b?&?vbCrLf?
?Next?
End?Sub
?
运行效果如图: