请高手指教如何清晰认清比较for---next与do---loop的具体区别? 以及适用的范围??
         若一段代码是:如何用for---next代替do---loop来实现?????Private Sub Form_Load()
   Dim p As Integer
   Randomize
   p = ""
   For i = 1 To 10
    Do
        x = Int(Rnd * 91 + 10)
        yes = 0
        For j = 1 To i - 1
            If x = a(i) Then
            yes = 1
            Exit For
            End If
    Loop While yes = 1
    
    Next i
End Sub

解决方案 »

  1.   

    for i = 1 to 100
       ...
    next i
    等效
    i = 1
    do
        if i > 100 then exit do
        ...
        i = i + 1    
    loopdo
       ...
    loop也可以等效
    for i = 1 to 2
       ...
       i = i - 1
    next所以没有区别。
      

  2.   

    个人意见,for---next循环比较适合循环条件类似(从..开始到..结束)这样的,而do---loop循环比较适合循环条件类似(当。。的时候)这样的
      

  3.   

    for next跟do loop都可以实现循环,用for实现的循环,都改成do语句来实现,而do循环,也都可以改为for语句来实现。关键就是看你更喜欢用哪一种循环了。
      

  4.   

    For...Next 语句
    以指定次数来重复执行一组语句。Do...Loop 语句
    当条件为 True 时,或直到条件变为 True 时,重复执行一个语句块中的命令。很多时候for...next是不能代替do...loop,因为你根本就不知道循环体要执行多少遍。
    比如你举的例子中的do..loop,你会知道它循环多少次吗?
      

  5.   

    简单的说:在明确 初始值、终值和步长 的情况下,适合用 For .......... Nexe 。在一定的逻辑条件下进行循环(或终止循环),适合用 Do ....... Loop 。
      

  6.   

    for---next是计数型循环,用于循环次数上限已经的情况。可用exit for中止循环。
    do loop用于循环次数上限未知的情况,可用 exit do中止循环
    do while---loop是当型循环,执行循环体前首先检查条件是否成立,不成立则中止
    do loop while是直到型循环,执行循环体后再检查条件是否成立,不成立则中止。
      

  7.   

    For...Next是已知循环次数,你需要循环多少次。
    (PS:某些时候,不懂用Do...Loop循环的家伙,我见过一个,他就开个For循环,循环值就是10000000....,然后在循环里面判断退出这种人还真把For当Do用了)Do...Loop广义来说是未知类循环,你根本不知道它有多少,要循环多少次,就需要在循环中实时判断退出条件。
    Do While语句的循环是Do循环的一种简单自动判断模式,一般可以使用,不过需要判断的条件太多太杂的时候只能在Do...Loop循环里面使用If语句判断。
      

  8.   

    你写得这两个没得什么区别,不过当WHILE写在前面时,是当DO后面的条件为真才成立,可以和 do until.....loop区别
      

  9.   

    for事先知道循环次数,循环体可能一次也不执行,提前退出用exit for
    do事先不知道循环次数,循环体至少执行一次,提前退出用exit do
      

  10.   

    FOR 能明确知道循环次数,并且至少1次,而DO只有满足条件是才循环,不能确定次数,可以一次也不循环 与DO WHILE 相同
      

  11.   

    可以的话,我都用for   next因为有资料说这个会快些
      

  12.   

    恩,do用的是未知次数的,for用的是有限次数的