元ネタ:VBのブロックって何なんでしょうな^^; (自作自演じじゅう汁)
上記のネタで取り上げていた、ローカル変数が、プロシージャ内で一意の名前を持つ必要がある理由の一つと私が勝手に考えているのは、「VBにはラベルがあって好きなとこに飛ばせるんだお」ということです。
たとえば、以下のようなへチョイコードを書いたとき、元の意味が変わっていたり、値が消えていたら困るんですねw
【元のネタ元で指摘を受けたので下線部を修正。ありがとうございます。】
スコープ→可視範囲なのでブロック内でしか見えない仕様は当然
記憶域期間→VBの場合、プロシージャ内
Dim i As Integer
Dim j As Integer
i = 0
j = 0
If i = 0 Then
Dim k As Integer
LabelX:'ブロックの中に呼んでみます(うへ、きめぇw)
k = 2
Console.WriteLine(k)
End If
j = j + 1'永久ループを防ぐためだけに使用する変数w
If j <= 1 Then
GoTo LabelX'ジャーーーンプw
End If
【実行結果】
2
2