vb.net对循环内的变量分配和初始化的处理

下面两段代码会各有什么输出呢:
1.
  For i As Integer = 0 To 3                
         Dim j As Integer = 10
                Debug.WriteLine(j)
                j += 1
            Next
2.
For i As Integer = 0 To 3
                Dim j As Integer
                Debug.WriteLine(j)
                j += 1
            Next

答案是:
1.
10
10
10
10
2.
0
1
2
3
通过上面的例子可以猜测vb.net处理循环内变量的方式是:1次分配,若有初始化值的将每次循环中都会赋初始化值,否则只在首次分配时初始为(内存)0。
这也说明循环内变量与同样定义的函数范围变量不等效。
因此如果要防止像代码2那样的保持修改效应,应该明确写上变量在循环开始每次应初始化为什么值。
原文地址:https://www.cnblogs.com/Render/p/474309.html