版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
执行GOTO语句将无条件地跳转到过程内的标签所在代码。
需要注意的是:由于GoTo的跳转使代码具有不确定性,而且阅读和维护会变得更加困难,应该尽可能的减少使用。
看以下代码,输出0-100,但是当等于5时,结束输出。
Sub main()
For i As Integer = 0 To 100
Console.WriteLine(i)
If i = 5 Then GoTo equal5
Next
Console.ReadKey()
Exit Sub
equal5:
Console.WriteLine("已经跳转")
Console.ReadKey()
End Sub
我们定义了一个标签:equal5,当i=5时就跳转到此处的代码,不再继续输出数字。运行如下:
再继续看以下代码:
Sub Main()
Dim i As Integer
Console.WriteLine("请输入一个数字")
i = CType(Console.ReadLine, Integer)
Select Case i
Case 0
GoTo statements0
Case 1
GoTo statements1
Case Else
GoTo statementselse
End Select
statements0:
Console.WriteLine("输入数据为0")
statements1:
Console.WriteLine("输入数据为1")
statementselse:
Console.WriteLine("输入数据为其他")
Console.ReadKey()
End Sub
运行时如下:
可以看到并不是我们所希望的输出。修改代码如下:
Sub Main()
Dim i As Integer
Console.WriteLine("请输入一个数字")
i = CType(Console.ReadLine, Integer)
Select Case i
Case 0
GoTo statements0
Case 1
GoTo statements1
Case Else
GoTo statementselse
End Select
statements0:
Console.WriteLine("输入数据为0")
GoTo endsub
statements1:
Console.WriteLine("输入数据为1")
GoTo endsub
statementselse:
Console.WriteLine("输入数据为其他")
GoTo endsub
endsub:
Console.ReadKey()
End Sub
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。