VB FOR 循环问题~
展开全部
如果循环种子(i)是Byte,则步长也应该是Byte,
但-1转换为Byte会溢出(Byte的取值范围是0-255)
下面这样可以
Dim i As Byte
For i = 2 To 10 Step 1
Next i
注意,for循环在过程中是循环种子和步长相加
下面是MSDN的解释
进入循环。当开始执行 For...Next 循环时,Visual Basic 将计算start、end 和 step(仅此一次)。然后将 start 赋予 counter。运行语句块之前,它先将 counter 与 end 进行比较。如果 counter 已经超过了结束值,则 For 循环终止,并且控制将传递给 Next 语句后面的语句。否则,将运行语句块。
循环的迭代。每次 Visual Basic 遇到 Next 语句时,都按 step 递增 counter,然后返回到 For 语句。它再次将 counter 与 end 进行比较,并再次根据结果运行块或者终止循环。这一过程将一直持续下去,直到 counter 传递 end 或者遇到 Exit For 语句为止。
循环的终止。在 counter 传递 end 之后,循环才会终止。如果 counter 等于 end,则循环继续。如果 step 为正数,确定是否运行循环代码块的比较运算将为 counter <= end;如果 step 为负数,则为 counter >= end。
更改迭代值。如果在循环内更改 counter 的值,将会使代码的阅读和调试变得更加困难。更改 start、end 或 step 的值不会影响首次进入循环时所确定的迭代值。
但-1转换为Byte会溢出(Byte的取值范围是0-255)
下面这样可以
Dim i As Byte
For i = 2 To 10 Step 1
Next i
注意,for循环在过程中是循环种子和步长相加
下面是MSDN的解释
进入循环。当开始执行 For...Next 循环时,Visual Basic 将计算start、end 和 step(仅此一次)。然后将 start 赋予 counter。运行语句块之前,它先将 counter 与 end 进行比较。如果 counter 已经超过了结束值,则 For 循环终止,并且控制将传递给 Next 语句后面的语句。否则,将运行语句块。
循环的迭代。每次 Visual Basic 遇到 Next 语句时,都按 step 递增 counter,然后返回到 For 语句。它再次将 counter 与 end 进行比较,并再次根据结果运行块或者终止循环。这一过程将一直持续下去,直到 counter 传递 end 或者遇到 Exit For 语句为止。
循环的终止。在 counter 传递 end 之后,循环才会终止。如果 counter 等于 end,则循环继续。如果 step 为正数,确定是否运行循环代码块的比较运算将为 counter <= end;如果 step 为负数,则为 counter >= end。
更改迭代值。如果在循环内更改 counter 的值,将会使代码的阅读和调试变得更加困难。更改 start、end 或 step 的值不会影响首次进入循环时所确定的迭代值。
展开全部
Dim s As Integer '定义通用s
Private Sub Command1_Click()
s = 1 '初始值为1
For i = 1 To 5 '每行循环一次
s = s + i - 1 '求出s为每行的第一个数的数值
For j = s To s + i - 1 'j循环是从s到每行最后一个数值结束
Print j; '连续输出每行的值
Next j
Print '输出一行的值后换行进行下次输出
Next i
End Sub
'楼主明鉴,代码奉上。附赠说明,通俗易懂。思路简单,堪称经典。上天入地,理应最佳。哈哈
Private Sub Command1_Click()
s = 1 '初始值为1
For i = 1 To 5 '每行循环一次
s = s + i - 1 '求出s为每行的第一个数的数值
For j = s To s + i - 1 'j循环是从s到每行最后一个数值结束
Print j; '连续输出每行的值
Next j
Print '输出一行的值后换行进行下次输出
Next i
End Sub
'楼主明鉴,代码奉上。附赠说明,通俗易懂。思路简单,堪称经典。上天入地,理应最佳。哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Form_Click()
Dim i%, j%
For i = 0 To 4
For j = j To i + j
Print j + 1;
Next
Print
Next
End Sub
Dim i%, j%
For i = 0 To 4
For j = j To i + j
Print j + 1;
Next
Next
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Form_Load()
Me.AutoRedraw = True
Dim i As Byte
Dim j As Byte
Dim js As Byte
js = 0
For i = 1 To 5
For j = 1 To i
js = js + 1
If j = i Then
Print CStr(js);
Else
Print CStr(js) & Space(1);
End If
Next
Print
Next
End Sub
=========================
以上给你参考。
Me.AutoRedraw = True
Dim i As Byte
Dim j As Byte
Dim js As Byte
js = 0
For i = 1 To 5
For j = 1 To i
js = js + 1
If j = i Then
Print CStr(js);
Else
Print CStr(js) & Space(1);
End If
Next
Next
End Sub
=========================
以上给你参考。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'以下代码经过测试通过
Private Sub Command1_Click()
For i = 1 To 5
is_out = ""
t_start = 1
For x = 1 To i - 1
t_start = t_start + x
Next
For z = 1 To i
is_out = is_out & " " & t_start + z - 1
Next
Print is_out
Next
End Sub
Private Sub Command1_Click()
For i = 1 To 5
is_out = ""
t_start = 1
For x = 1 To i - 1
t_start = t_start + x
Next
For z = 1 To i
is_out = is_out & " " & t_start + z - 1
Next
Print is_out
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询