有没有办法在VBScript中退出或中断switch语句?

时间:2013-06-24 17:11:00

标签: vbscript switch-statement exit break

例如:

Select Case (x)
    Case 1
        If ... Then
            ***Break***
        End If

        Response.Write( ... )

    Case Else
        Response.Write( ... )
End Select

4 个答案:

答案 0 :(得分:5)

Select Case没有被打破。两者都不是If

语法:

  

选择案例 testexpression

     

[案例表达列表-n

     

[statements-n]]。 。 。

     

[ Case Else expressionlist-n

     

[elsestatements-N]]

     

结束选择

Source

VBScript相当于break Exit。它以下列形式出现:

Exit Do
Exit For
Exit Function
Exit Sub

Source

答案 1 :(得分:3)

要跳转VBScript,你必须Exit一个循环(或一个Sub / Function,(c)@Andrevinsky):

Option Explicit

Dim i
For i = 1 To 3
    Do ' Jumper Do
        Select Case i
          Case 1, 2
            WScript.Echo i, "A"
            If i = 2 Then
               WScript.Echo i, "B"
               Exit Do
            End If
            WScript.Echo i, "C"
          Case Else
            WScript.Echo i, "D"
        End Select
        WScript.Echo i, "E"
        Exit Do
    Loop ' Jumper Loop
    WScript.Echo i, "F", "---------"
Next

输出:

1 A
1 C
1 E
1 F ---------
2 A
2 B
2 F ---------
3 D
3 E
3 F ---------

答案 2 :(得分:2)

问题已经得到解答,但只是为了您的信息,您可以使用此构造(我将条件Apples = Pears作为您的If ... Then条件):

Select Case True
    Case (Apples = Pears)
         ' Do nothing, so it just breaks out of the select construct
    Case (x = 1)
         Response.Write( ... )
    Case Else
         Response.Write( ... )
End Select

答案 3 :(得分:0)

如果您在do loop内围绕选择,那么您可以使用exit do退出选择。

do
    select case i
        case 1
            ...do stuff...
        case 2
            ...do stuff...
        case 3
            exit do
        case else
            ...do stuff...
    end select
    exit do
loop

请注意exit do结尾之前的loop因为您不想实际循环。