vb.net中关于循环语句 求教大家弱智的问题
要弄清楚这两个问题,就要明白For循环语句的语法规则:
创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、网站设计制作、网站设计、网站优化、软件开发、网站改版等服务,在成都十余年的网站建设设计经验,为成都上1000家中小型企业策划设计了网站。
For循环语句,首先是判断循环条件,如果循环条件不合理,则循环不执行。
那么看第一个语句,循环范围是 i = -3.5 to 5.5,显然这个是一个从-3.5到5.5的递增范围,可是后面的Step却是一个负数,表示以0.5的步长递减。取值范围要求从小到大,可是步长改变却是由大变小,显然这个循环条件自相矛盾,所以循环将不会执行,也就是循环执行的次数是0次!
如果循环条件合理,则开始执行循环语句,直到根据步长变换,下一个值超出循环范围则终止。
For j = 6 to 2 Step -2
Next
完整写法就是:
For j = 6 to 2 Step -2
Next j
Next j的意思就是下一个j值。结合本题,下一个j值等于6-2=4,这个时候,就是循环语句的第二个规则,判断循环变量的值是否超出循环范围,我们这里的j=4,显然是在6 to 2这个范围之内,所以循环继续,到下一个j的时候为2,依然在循环范围内;到这里,6,4,2我们的循环执行了3次,准备第4次循环的时候j = 2 -2 = 0超过了6 to 2这个范围,那么循环终止。
所以i循环内的每一个j循环将执行3次。
vb.net for循环
dim i
for i=2 to 1
msgbox("*")
next
语法没问题,这应该在winform里面能够调试成功,显示运行框,但是在web application里面就不能出现弹出信息框了,在网页上要出现,建议用response.write("scriptalert('***')/script").
for i=100 to 1 这样的语句在VB9.0后是支持的。楼下的,不要天天抱着VB6啃。
vb.NET中多个类似代码如何用循环表达?
首先写一个事件响应方法:
Protected Sub dcwgl_zx_f5_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
'一些代码
'如果你想使用这个响应事件的控件,用CType(sender,TextBox)表达
'例如Dim thisTextBox As TextBox = CType(sender, TextBox)
End Sub
用如下代码就可以绑定事件了:
AddHandler xxTextBox.TextChanged, AddressOf dcwgl_zx_f5_TextChanged
推荐你动态创建这些控件并绑定事件(通常在Form的Load事件中)。假设你要创建x个TextBox:
For i = 0 To x
Dim tb As New TextBox()
'把它加入父容器的控件集合
Form1.Controls.Add(tb)
'绑定事件
AddHandler tb.TextChanged, AddressOf dcwgl_zx_f5_TextChanged
Next i
你也可以静态添加这些TextBox,当然事先要把它们放入某个容器中,比如GroupBox1,再绑定事件(在Load事件中):
For Each con As Control In GroupBox1.Controls
If TypeOf con Is TextBox Then
Dim tb As TextBox = CType(con,TextBox)
AddHandler tb.TextChanged, AddressOf dcwgl_zx_f5_TextChanged
End If
Next
vb.net do循环
你确信只循环一次吗?我看不像,在最后添加上一句msgbox jishu1,多半显示3。
是在第二块代码中有问题,你应该把chaxun4 = xlsheet.Range("l1").Value + 2分别放到两个条件句中初始chaxun4变量。
因为上一个Do Until atmbianhaop = xlsheet.Range("B" chaxun4).Value 循环退出后,下一个循环一开始就符合退出条件了,所以循环没有进行了。
vb.net 循环写入数据库问题
这是你的For语句
For i = 0 To webtable.Rows.Count - 1
Label2.Text = "正在从远程服务器下载数据 " i "/" webtable.Rows.Count
CMD = New OleDbCommand(Dbcstr, Dbc)
CMD.ExecuteNonQuery()
webrow = webtable.Rows.Item(i)
Next
语句中Dbcstr一直没有变动过,所以你提交到数据库中的内容总是第一行。
修改如下,未调试。
Dbc.Open()
For i = 0 To webtable.Rows.Count - 1
Dim Dbcstr As String = "INSERT INTO PurchaseOrders ([PurchaseOrderID],……
Dbcstr = Dbcstr " VALUES('" webtable.rows(i).Item(0) "','" ……
'webrow.Item(0)改成webtable.rows(i).Item(0),其他一样
CMD = New OleDbCommand(Dbcstr, Dbc)
CMD.ExecuteNonQuery()
Next
conn.Close()
Dbc.Close()
vb.net的for each 循环问题
值传递和地址传递(引用)的而导致的问题。
在For Each 的时候
当对象是值对象的时候,等于获得到一个副本。
当对象是引用对象的时候,则是获得到一个指针。
而在For To 的时候
无论对象是什么,你都获得到这个集合指定位置的指针。
更详细的,可以请参考以下内容,或直接去官方的MSDN了解
关于值类型和引用类型:
如果数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。“引用类型”包含指向存储数据的其他内存位置的指针。
值类型
值类型包括:
所有数字数据类型
Boolean、Char 和 Date
所有结构,即使其成员是引用类型
枚举,因为其基础类型总是 SByte、Short、Integer、Long、Byte、UShort、UInteger
或 ULong
引用类型
引用类型包括:
String
所有数组,即使其元素是值类型
类类型,如 Form
委托
非类型的元素
以下编程元素未限定为类型,因为您无法将它们中的任何一个指定为声明元素的数据类型:
命名空间
模块
事件
属性和过程
变量、常数和字段
使用对象数据类型
可以将引用类型或值类型指派给 Object 数据类型的变量。Object
变量总是存储指向数据的指针,从不存储数据本身。然而,如果将值类型指派给 Object 变量,则 Object
变量将表现得像存储自己的数据一样。有关更多信息,请参见 Object 数据类型。
通过将 Object 变量传递给 Microsoft.VisualBasic
命名空间中 Information
类的 IsReference
方法,可以确定该变量是用作引用类型还是值类型。如果 Object 变量的内容表示引用类型,则 Information.IsReference 返回 True。
本文标题:vb.net第隔循环 vbnet for循环
转载来源:http://scgulin.cn/article/hjiehc.html