do while循环语句_循环语句之Do...Loop

上节课程我们一起学习了循环语句中的For循环,For循环的特点是已知循环次数,那么对于某些情况下,难以确定循环的具体次数,但是已知循环条件时,常常使用Do...Loop循环语句。

Do...Loop循环语句具有4种形式,分别是Do While...Loop,Do...Loop While,Do Until...Loop,以及Do...Loop Until。

1,Do While...Loop  语法格式如下:
Do While                  [Exit Do]Loop
解析:

当程序执行到Do While ...Loop语句时,首先判断循环条件是否满足,如果条件不满足则不执行循环语句下的循环体;如果条件满足,即循环条件为True时,执行循环体。循环体内如果没有Exit Do语句强制退出循环,那么程序将回到循环开始处重复上面的步骤,直到循环条件不满足,或者循环体内有Exit Do强制退出语句。

用白话文来描述Do While...Loop语句,可以理解为:

条件满足时,

什么什么,

循环以上步骤

根据以上说明,可以看出来,Do While...Loop循环语句,其特点是每次执行循环体前先判断循环条件,然后根据条件是否满足决定是否执行循环体和是否退出循环。因此有可能出现循环体一次未执行的情况。

举例: 目标: 使用Do While...Loop语句计算1到100的所有整数和值。 程序界面如下图所示: 7e7904a8daaca598d16ad2dbde7a5395.png 代码如下:
Private Sub Command1_Click()        Dim i%, sum As Long        Do While i <= 100                sum = sum + i                i = i + 1        Loop        Print sumEnd Sub
2, Do...Loop While 语法格式:
Do         [Exit Do]Loop While
解析:

当程序执行到Do...Loop While语句时,首先执行一次循环体,如果循环体内有Exit Do强制退出语句则退出该循环,否则判断循环条件是否满足,如果条件不满足,则退出该循环,如果条件满足则回到循环开始处继续重复上面的步骤。

用白话文来描述,可以理解为:

什么什么

条件满足时,循环以上步骤

可以看出,Do...Loop While循环的特点是,先执行一次循环体,然后再判断循环条件,因此该循环体一定会被执行至少一次。在解决某些问题时,需要循环体被执行至少一次,那么就需要用到该循环语句。 举例: 目标: 输入一个正整数,然后计算1到该数之间的所有整数和值。 程序界面如下图所示:

19b618a47756c477262a04a74b4694e6.png

Private Sub Command1_Click()    Dim i%, v%, sum As Double    v = Val(Text1.Text)    Do        i = i + 1        sum = sum + i    Loop While (i < v)    Print sumEnd Sub
3, Do Until...Loop 语法格式:
Do Until         循环体        [Exit Do]Loop
解 析:

当程序执行到该循环语句时,首先判断循环条件,当循环条件值为真时,则结束循环,当循环条件值为假时,则执行循环体。如果循环体内有Exit Do则强制退出循环,如果没有则继续循环重复上面的步骤。

可以看出Do Until...Loop与Do while...Loop的语句结构类似,不同之处在于,前者是在循环条件为False时执行循环体,而后者是在循环条件为True时执行循环体。或者说,两者结束循环的条件是刚好相反,前者需循环条件为真时,结束循环,而后者则是循环条件为假时结束循环。

4,Do...Loop Until 语法格式:
Do        循环体    [Exit Do]Loop Until 
同上面的循环语句一样,该循环语句与Do...Loop While循环语句也是语法结构一致,但结束循环的方式刚好相反。Do...Loop While是循环条件为假时结束循环,而Do...Loop Until则恰恰相反,是循环条件为真时结束循环。 死循环:

相比于For循环,本节课程学习的4种Do循环,非常容易出现死循环,尤其作为学习VB不久的小伙伴,因此在使用Do循环时,一定要注意避免造成死循环,因为死循环并不违背语法格式,因此程序在编译时不会报错。

如何避免死循环:

1,循环条件通常是一个表达式,其结果是可以变化的,既可以是True也可以是Fasle,且在循环体内应该要去改变循环条件,以使得程序在执行有限步骤后,循环能够退出。比如本节课程第一个例子,求1-100之间的整数和,如果循环体中没有i=i+1语句,那么循环条件就永远不会改变,程序就会一直循环下去。

2,如果循环条件一直不会变化,那么可以在循环体中加入Exit Do来强制退出循环,可以使用If判断语句,当条件满足时执行Exit Do来强制退出循环。比如:

Do While(1)    '循环条件为1,表示循环条件永远满足    i=i+1    sum=sum+1    if i>100 then        Exit Do    end ifLoop

3,可以在循环体中加入Do Events,来转让控制权,以便让操作系统处理其它事件。如果没有Do Events语句,那么计算机将会一直在执行循环内容,不会执行和相应其它操作,比如用户点击按钮之类的。但加入Do Events后,当执行到该语句时,计算机会允许响应其它操作。例如:

Do while(1)        i=i+1    sum=sum+1    if i>10000 then        Exit Do    end if        do eventsloop
如果不小心造成了死循环,可以使用组合键ctrl+Pause Break强制退出。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值