切换/选择语句:是否可以跳转到不同的case子句?

时间:2011-10-18 17:49:22

标签: .net vb.net

说我在VB.NET中有这个:

Dim executeB As Boolean
Select Case myVariable
  Case "a"
    'some code
  Case "b"
     'some code
  Case Else
End Select

如果myVariable是“a”,控件将进入第一个case语句。现在让我们说如果myVariable =“a”,但是在一个case块中,我发现executeB是真的,那么它是否可以跳转到第二种情况?

5 个答案:

答案 0 :(得分:5)

是的,将"b"案例中的代码封装到函数/过程中并从案例"a"中调用

答案 1 :(得分:1)

如果你需要从案例A跳到案例B,那么开关可能不是正确的选择。交换机结构基于每条路径互斥的想法。

但要回答实际问题,不,我很确定你不能跳进案件。

答案 2 :(得分:1)

您可以使用GoTo语句。也就是说,你不应该,这几乎从来都不是正确的事情,我不记得一个实例,它实际上会使代码更清晰,而不是breakcontinue和{{1} },更结构化的堂兄弟。 (或者与分解代码相反,所以两者都没有必要。)将开关盒体包裹在函数中,然后调用它们。

答案 3 :(得分:0)

在这种情况下,我可能想把“executeB”变成私有函数并调用它。

答案 4 :(得分:0)

只是一个注意事项,一般来说你要做的事情很糟糕,它叫做瀑布。 .Net试图阻止你这样做,因为它很难解决你的代码中的错误。如果您有复杂的条件,那么您需要使用正常的if / then / else。