说我在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是真的,那么它是否可以跳转到第二种情况?
答案 0 :(得分:5)
是的,将"b"
案例中的代码封装到函数/过程中并从案例"a"
中调用
答案 1 :(得分:1)
如果你需要从案例A跳到案例B,那么开关可能不是正确的选择。交换机结构基于每条路径互斥的想法。
但要回答实际问题,不,我很确定你不能跳进案件。
答案 2 :(得分:1)
您可以使用GoTo语句。也就是说,你不应该,这几乎从来都不是正确的事情,我不记得一个实例,它实际上会使代码更清晰,而不是break
,continue
和{{1} },更结构化的堂兄弟。 (或者与分解代码相反,所以两者都没有必要。)将开关盒体包裹在函数中,然后调用它们。
答案 3 :(得分:0)
在这种情况下,我可能想把“executeB”变成私有函数并调用它。
答案 4 :(得分:0)
只是一个注意事项,一般来说你要做的事情很糟糕,它叫做瀑布。 .Net试图阻止你这样做,因为它很难解决你的代码中的错误。如果您有复杂的条件,那么您需要使用正常的if / then / else。