VB循环语句主要有哪些

VB循环语句主要有哪些,第1张

哈哈,都是些什么答案哦,误导:

VB循环主要有以下三类:

1)

FOR

循环变量=初值

TO

终值

[STEP

步长]

循环体

NEXT

循环变量

2)

WHILE

条件表达式

循环体

WEND

3)

DO

WHILE|UNTIL

表达式

循环体

LOOP

DO

循环体

LOOP

WHILE|UNTIL

表达式

使用循环语句

使用循环重复执行代码

循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。

在 VBScript 中可使用下列循环语句:

DoLoop: 当(或直到)条件为 True 时循环。

WhileWend: 当条件为 True 时循环。

ForNext: 指定循环次数,使用计数器重复运行语句。

For EachNext: 对于集合中的每项或数组中的每个元素,重复执行一组语句。

使用 Do 循环

可以使用 DoLoop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。

当条件为 True 时重复执行语句

While 关键字用于检查 DoLoop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。

Sub ChkFirstWhile()

Dim counter, myNum

counter = 0

myNum = 20

Do While myNum > 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "循环重复了 " & counter & " 次。"

End Sub

Sub ChkLastWhile()

Dim counter, myNum

counter = 0

myNum = 9

Do

myNum = myNum - 1

counter = counter + 1

Loop While myNum > 10

MsgBox "循环重复了 " & counter & " 次。"

End Sub

重复执行语句直到条件变为 True

Until 关键字用于检查 DoLoop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。

Sub ChkFirstUntil()

Dim counter, myNum

counter = 0

myNum = 20

Do Until myNum = 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "循环重复了 " & counter & " 次。"

End Sub

Sub ChkLastUntil()

Dim counter, myNum

counter = 0

myNum = 1

Do

myNum = myNum + 1

counter = counter + 1

Loop Until myNum = 10

MsgBox "循环重复了 " & counter & " 次。"

End Sub

退出循环

Exit Do 语句用于退出 DoLoop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 IfThenElse 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。

在下面的示例中,myNum 的初始值将导致死循环。IfThenElse 语句检查此条件,防止出现死循环。

Sub ExitExample()

Dim counter, myNum

counter = 0

myNum = 9

Do Until myNum = 10

myNum = myNum - 1

counter = counter + 1

If myNum < 10 Then Exit Do

Loop

MsgBox "循环重复了 " & counter & " 次。"

End Sub

使用 WhileWend

WhileWend 语句是为那些熟悉其用法的用户提供的。但是由于 WhileWend 缺少灵活性,所以建议最好使用 DoLoop 语句。

使用 ForNext

ForNext 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。

例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。

Sub DoMyProc50Times()

Dim x

For x = 1 To 50

MyProc

Next

End Sub

关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。

Sub TwosTotal()

Dim j, total

For j = 2 To 10 Step 2

total = total + j

Next

MsgBox "总和为 " & total & "。"

End Sub

要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。

Sub NewTotal()

Dim myNum, total

For myNum = 16 To 2 Step -2

total = total + myNum

Next

MsgBox "总和为 " & total & "。"

End Sub

Exit For 语句用于在计数器达到其终止值之前退出 ForNext 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 IfThenElse 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。

使用 For EachNext

For EachNext 循环与 ForNext 循环类似。For EachNext 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。

1、“For”语句,它的格式是:

For <循环变量>=<初赋值> To <终值> [Step <步长>]

…要循环执行D的代码…

Next <循环变量>

在默认情况下,Step被设为“1”,可以省略 例如:

Dim a As Integer

a = 0

For I=1 To 10

a=a+I

Next I

这是一个最简单的累加器的例子,把1到10累加在一起,然后赋值给“a”

2、While语句也是一个很常用的循环语句,它的形式很多:

①While …条件…

…要循环执行D的代码…

Wend

例如

Dim a As Integer

a = 0

I = 1

While I <= 10

a = a + I

I = I + 1

Wend

②Do While …条件…

…要循环执行D的代码…

Loop

例如

Dim a As Integer

a = 0

i = 1

Do While i <= 10

a = a + i

i = i + 1

Loop

③Do …要循环执行D的代码…

Loop While …条件…

例如

Dim a As Integer

a = 0

i = 1

Do

a = a + i

i = i + 1

Loop While i <= 10

While后面都跟逻辑条件判断,“Do While …… Loop语句”和“While …… Wend 语句”作用相似,都是先判断While后面的条件是否为“真”,如果为“真”则执行里面的语句,如果为“假”,则退出循环,循环直至条件为“假”终止。“Do …… Loop While ”与前两者的区别在于,它不管条件的真假,都会先执行“Do”后面的语句,也就是说,它至少执行语句一次。

●与While用法相似的还有Until语句,它是直至条件为真则终止循环,句式把do untilloop 和 do loop until,但是因为容易记混,所以我建议只用While即可。Until <条件>可以相当于While Not <条件>。

Dim a As Integer

a = 0

i = 1

Do Until i > 10

a = a + i

i = i + 1

Loop

Dim a As Integer

a = 0

i = 1

Do

a = a + i

i = i + 1

Loop Until i > 10

●For循环和Whlie循环应当根据适当的环境使用,它们有时也可替换。

1、运行For语句和Do语句的循环语句的功能示范frm(注意步长为负时,如-1时For语句的运行情况讨论),掌握它们的功能;

2、例2:求S=1+1/2+1/3+…+1/n的循环结构程序如下:(演示:例2累加求和程序FRM,再一次说明为什么要用第二种Do循环语句)

S = 0

n = Val(Text1Text) (因为条件表达式是数值比较,所以要把Text1Text得到的

字符串数字转为数值类型,例如:”100”100)

Do While n < 1 Or n <> Fix(n) Fix(x)是取整函数;

n = InputBox("输入n不是自然数,请重新输入n=") ‘输入框:InputBox

Text1Text = n

n = Val(n) (因为条件表达式是数值比较,所以要把InputBox得到的

Loop 字符串数字转为数值类型,例如:”100”100)

For k = 1 To n

S = S + 1 / k 循环求S=1+1/2+1/3+…+1/n

Next k

Text2Text = S

3、两种循环结构语句的格式:

(1) For语句的一般格式: P79

For 循环变量=初值 To 终值 Step 步长

程序段

Next循环变量 (当循环变量没超出终值时,执行程序段)

(2) Do语句的常用格式: P80

Do While 条件表达式 (当条件成立时,进入循环,执行程序段)

程序段

Loop (负责回到条件表达式,判断是否成立?)

提问:程序段的结构是什么样的?

就是以前讲的程序有三种基本控制结构:顺序结构、(分支)选择结构、循环结构!

这三种基本控制结构通常会被组合起来使用,以表达各种较为复杂的问题的算法。例如:

在(分支)选择模式内嵌入(分支)选择模式;

在循环模式内嵌入循环模式;

在循环模式内嵌入在(分支)选择模式;在(分支)选择模式内嵌入循环模式;

因此,循环内的程序段可以再包含选择模式和循环模式,今天我们先来讨论:

循环内的程序段可以再包含循环模式——多重循环的使用!

如果一层循环内只包含一层循环,我们把它叫做双重循环,掌握了双重循环的用法,那么多重循环也就容易使用掌握了。

二、双重循环的使用:

1、一般结构:(以For语句为例)

For 循环变量A=初值 To 终值 Step 步长

For 循环变量B=初值 To 终值 Step 步长

程序段

Next循环变量B

Next循环变量A

2、双重循环执行实例:

双重循环是如何执行的呢?我们来看下面:

实例1:For i=1 To 3 Step 1

For j=1 To 5 Step 1

List1AddItem Str(i) + "" + Str(j) ‘复习列表框List1AddItem的作用,

Next j

Next i ‘运行、演示多重循环程序;

从实际演示可知:当i=1时,j=1、2、3、4、5;

当i=2时,j=1、2、3、4、5;

当i=3时,j=1、2、3、4、5;

规律总结:先外循环,后内循环,内循环完成后,再进入外循环;

实例2:打印(输出)用“”组成的图形;

右边程序中,只要改变a、b的值,便打印出用“”组成的各种图形;(演示…)

注意:Print ""; 后分号“;” 表示不换行,下次循环打印还在同一行上。用立即方式验证如下:

Print "3";"+" ;"9=";39

3+9= 27

提问:输出 39=27 的语句有几种写法?(用立即方式展示)

实例3:修改实例2,可得到一个九九乘法表,程序如下:

For i=1 To 9 Step 1

For j=i To 9 Step 1

Print Str(i) + "" + Str(j)+ "=";ij;

Nextj

Print ‘打印空行,起到换行的作用!

Next i

讲解上程序,演示九九乘法表程序;

注意:为了内、外循环程序结构层次清楚,上面程序的同一个循环语句For/Next上下对齐,而且内循环语句缩进2格书写;

1、循环内的程序段可以再包含循环模式,我们称为多重循环;

如果一层循环内只包含一层循环,我们把它叫做双重循环。

2、双重循环的运行是先外循环,后内循环,内循环完成后,再进入外循环;

(多重循环运行次序也一样类推,见课本P22-23(P96-97)的包装问题算法);

如图,建立文本框数组 txtLed(0) ~ txtLed(8) ,依次填入 1~ 9

程序如下:

Dim start_led As Long, end_led As Long, loop_count As Long

Public Function Flicker() As Boolean

    Static i As Long, last_led As Long

    

    If i < start_led Then i = start_led

    

    txtLed(last_led)BackColor = vbWhite  '将前一盏灯变回白色

    txtLed(i)BackColor = vbRed           '将当前灯变成红色

    last_led = i

    i = i + 1

    

    If i > end_led Then

        i = start_led

        Flicker = True      '完成一个循环

    Else

        Flicker = False     '循环没有完成

    End If

End Function

Private Sub Timer1_Timer()

    If loop_count < 4 Then

        start_led = 0  '从一号灯开始

        end_led = 8    '到九号灯结束

        If Flicker() Then loop_count = loop_count + 1

        

    ElseIf loop_count < 9 Then

        start_led = 2  '从三号灯开始

        end_led = 6    '到七号灯结束

        If Flicker() Then loop_count = loop_count + 1

    End If

End Sub

For Each ……Next格式:语句只为集合与数组二种数据类型专门度身定做的。

For Each <成员>In<数组或集>

[<语句组>]

[Exit For ]

Next [<成员>]

例子中a为一个数组;x是成员,不用定义! 例:

For Each x In a

sum = sum + x

Next x

VB For EachNext语句在数组中的使用:

VB For EachNext语句好像只是为二种数据类型专门度身定做的,其一就是集合,另外一个就是数组了。通过VB For EachNext语句,可以十分方便的访问数组中的任一元素。请仔细分析一下下列代码:

Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}

Dim Temp As String

For Each Temp In arrString

If Temp = "星期三" Then

MsgBox ( "在数组中寻找到""星期三""字符串")

Exit For '退出For Each … Next语句

End If

Next Temp

上面代码的功能是通过VB For EachNext语句访问arrString数组中各元素,如果发现有元素为字符串“星期三”,则弹出提示框,并退出循环。

同样用For … Next语句也能够实现上面同样的功能,只是感觉有点不专业,并且有点繁琐,下面代码是用For … Next语句实现上面VB For EachNext语句同等功能的代码:

Dim i As Integer

For i = 0 To 2

If arrString ( i ) = "星期三" Then

MsgBox ( "在数组中寻找到""星期三""字符串" )

Exit For

End If

Next i

for

<循环变量>=<初赋值>

to

<终值>

[step

<步长>]

……

……

next

<循环变量>

在默认情况下,step被设为“1”,可以省略,step也可以设为负值,例如:

dim

a=0

for

i=1

to

10

a=a+i

next

i

这是一个最简单的累加器的例子,把1到10累加在一起,然后赋值给“a”这样的效果和上面是一样的,只不过是倒着加罢了,请看:

dim

a=0

for

i=10

to

1

step

–1

a=a+i

next

i

while语句也是一个很常用的循环语句,它的形式很多。

do

while

……

loop语句

while

……

wend

语句

do

……

loop

while

while后面都跟逻辑条件判断,“do

while

……

loop语句”和“while

……

wend

语句”作用相似,都是先判断while后面的条件是否为“真”,如果为“真”则执行里面的语句,如果为“假”,则退出循环,循环直至条件为“假”终止。“do

……

loop

while

”与前两者的区别在于,它不管条件的真假,都会先执行“do”后面的语句,也就是说,它至少执行语句一次。

与while用法相似的还有until语句,它是直至条件为真则终止循环,句式把while上述三个语句的while换成until即可,但是因为容易记混,所以我建议只用while即可。until

<条件>可以相当于while

not

<条件>。

for循环和whlie循环应当根据适当的环境使用,它们有时也可替换。

-------------------------------------------------------------

最好找点资料看看,像vb神童教程,新手还是很容易看懂的。希望对你有帮助。。。

“loop until i>7” 符合题目条件中i的最小值是7

已经把第一次进入循环体计算在3次范围内

因为:

第一次进入循环体,使得I变为4

第二次,使得I变为7,但是I只是等于7,而并没有大于7,所以循环继续

第三次,使得I变为10,条件判断I已经大于7,退出循环!

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/biaobai/4031860.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-04-11
下一篇2024-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存