菜鸟问个简单的问题
For i = 0 to 100
    For j = 0 to 50
    '
    Next
    '跳到这里
Next比如当我j= 5的时候,内部的循环跳出来,跳到上面标注的位置。
用什么(别告诉我用goto)?

解决方案 »

  1.   

    用Exit for就可跳出内层循环
      

  2.   

    For i = 0 to 100
        For j = 0 to 50
          if j=5 then exit for
        Next j
        '跳到这里
    Next i
      

  3.   

    Exit For 不错。。
    但是还有一种方法:
    '------------------------
    For i = 0 to 100
        For j = 0 to 50
            If j < 5 Then
                j = j
            Else
                j = 51
            End If
        Next j
        '跳到这里
    Next i
    '---------------这是很粗糙的方法。。
      

  4.   

    用Exit for就可跳出内层循环
    goto is good
      

  5.   

    退出控制结构
    用 Exit 语句可以直接退出 For 循环、Do 循环、子过程或函数过程。Exit 语句的语法很简单:Exit For 在 For 循环中出现的次数没有限制,Exit Do 在 Do 循环中出现的次数也没有限制。For counter = start To end [Step increment]
    [statementblock]
    [Exit For]
    [statementblock]Next [counter[, counter] [,...]]Do [{While | Until} condition]
    [statementblock]
    [Exit Do]
    [statementblock]Loop Exit Do 语句可以在 Do 循环语法的所有版本中使用。Exit For 和 Exit Do 非常有用,因为它有时适于立即退出循环,而且不再执行循环中的任何进一步迭代或者语句。例如,在前面的打印屏幕和打印机共有字体的例子中,程序不断将打印机字体和给定的屏幕字体作比较,甚至在已经找到了一个相符的打字机字体后还在继续寻找。对这个函数有一个效率更高的改进版,在此,只要找到相匹配的字体后就立即退出循环:Private Sub Form_Click ()
       Dim SFont, PFont
       For Each SFont In Screen.Fonts ()
          For Each PFont In Printer.Fonts ()
             If SFont = PFont Then
                Print Sfont
                Exit For            '退出内圈循环。
             End If
          Next PFont
       Next SFont
    End Sub正如此例所表明的, Exit 语句几乎总是出现在 If 语句或 Select Case 语句内部,而 If 语句或 Select Case 语句在循环内嵌套。用 Exit 语句中断循环时,计数器变量的值会因退出循环的方式而不同: 在完成循环时,计数器的值等于上限值加上步进值。
    在提前退出循环时,计数器变量保持其值,并遵从有关取值范围的一般规则。
    在集合之外叠代时,如果计数器变量为 Object 类型,则其值为 Nothing;如果计数器变量为 Variant 类型,则其值为 Empty。 
    退出子过程或函数过程
    也可从控制结构内部退出过程。Exit Sub 和 Exit Function 的语法,和上一节“退出控制结构”中的 Exit For 和 Exit Do 相似。Exit Sub 可以出现在子过程主体内的任何地方,出现的次数随需要而定。当过程已完成每个任务并可直接返回时,Exit Sub 和 Exit Function 是非常有用的。例如,如果想改动前面的例子,使得对查找到的打印机和屏幕的共有字体,只打印其中的第一个,则可用 Exit Sub :Private Sub Form_Click ()
       Dim SFont, PFont
       For Each SFont In Screen.Fonts ()
          For Each PFont In Printer.Fonts ()
             If SFont = PFont Then
                Print Sfont
                Exit Sub            '退出过程。
             End If
          Next PFont
       Next SFont
    End Sub