vb.net对循环内的变量分配和初始化的处理
2006-08-11 14:51
363 查看
下面两段代码会各有什么输出呢:
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那样的保持修改效应,应该明确写上变量在循环开始每次应初始化为什么值。
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那样的保持修改效应,应该明确写上变量在循环开始每次应初始化为什么值。
相关文章推荐
- vb.net 教程 5-15 图像处理之内存处理2
- VB.NET中,用变量名来替换控件名
- VB.Net 使用Thread和DoEvent 进行并发处理
- vb.net 教程 5-13 图像处理之像素处理 5
- 寻找 vb.net 事务处理高级编程 的代码!!
- 复杂的XML文件(用VB.net处理)
- VB.NET轻松学会处理时间技巧(一)
- VB技巧:VB.NET中的变量范围差异
- vb.net 教程 5-14 图像处理之内存处理基础1
- Henry的VB.NET之旅(十三)—标准事件处理程序
- C 语言的循环控制变量定义和初始化问题
- 编译器给未初始化的全局变量和局部变量分配的存储值
- [VB.NET]ADO数据库处理-把记录装入DataGrilView
- VB.NET的这种功能--一个处理对几个控件
- 深入剖析VB.NET变量的使用
- 20100622 学习记录:iis批处理指令 VS. vb6.0→vb.net
- ASP.NET Razor - VB 变量
- vb.net中的共享方法、共享变量、全局变量
- [译]5.7. Initializing the Device Handling Layer: net_dev_init 设备处理层的初始化:net_dev_init
- VB.NET变量的作用域