VB中FOR循环STEP的问题

在for循环中,如果step是0的话,是无限循环还是不循环?... 在for循环中,如果step是0的话,是无限循环还是不循环? 展开
 我来答
Yuqi_Tan

2014-09-18 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3421万
展开全部
先看这几句执行时的作用:
(1)s = 0,给s设初值0
(2)For i = 1 To 5,第一次执行这一句时,对i设初值1,以后每次执行这一句时都判断i的值是否介于初值和终值之间,也就是在1和5之间,如果在这个范围之内,就执行下一句,如果超出这个范围,就去执行next i后面的那一句了。——楼主所提的问题,这一句话是第一个重点,请仔细理解。
(3)s = s + i,把s和i相加,再把和赋值给s
(4)Next i,执行这一句时,把i的值加上步长,在本例中,就是加1,再把值给i,相当于执行了i=i+1,再返回for i=1 to 5那一句去执行。——楼主所提的问题,这一句话是第二个重点,请仔细理解。
(5)Print s, i,这一句是打印s和i的值,当程序执行到这一句时,i的值一定是6了,因为等于5时还跳不出这循环体呢!

问题补充:Private Sub Command1_Click()
For i = 1 To 3 Step 2
Print "VB"
Next i
End Sub
为什么“vb”的执行次数为2次 step为2 不是直接1跳到3吗

补充答复:
楼主说的对啊,确实是直接从1跳到3,但是3仍然符合进入循环的条件,所是要Print 两次"VB"啊!!

-------------------------------------
Private Sub Command1_Click()
Dim x As Integer
Dim n As Integer
x = 1
n = 0
Do While x < 20
n = n + 1
x = x * 3
Loop
Text1.Text = Str(x)
Text2.Text = Str(n)
End Sub
为什么n=3 是怎么计算出来的??

再补充答复:
看执行do.....loop之间的语句几次就可以了
第一次,n=n+1=0+1=1,x=x*3=1*3=3
第二次,n=n+1=1+1=2,x=x*3=3*3=9
第三次,n=n+1=2+1=3,x=x*3=9*3=27
第四次,进入时,判断 x < 20已经不成立(已经=27了!),所以不能进入,循环结束,最终结果是n=3,x=27
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
xixiaohui002
推荐于2017-11-26 · TA获得超过1238个赞
知道小有建树答主
回答量:673
采纳率:50%
帮助的人:640万
展开全部
如果没有其他条件使循环变量的值发生变化,当第一次循环条件满足时,step为0将造成死循环,当第一次循环条件不满足时,step为0不循环
追问
能举一下其他条件的例子吗?最简单的就好,谢谢~
追答
for i=0 to 3 step 0
'此处死循环

next

for i=0 to 3 step 0
i=i+1

'此处循环3次

next

for i=3 to 0 step 0
'不进入循环

next
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淡智板环
2020-02-09 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1138万
展开全部
for
循环
是定长循环
.
在循环开始后
把step
值加到
循环计数器
(i)
里。并不会动态改变step。
step
的值
可以是正数,负数,或0
.为0时,就会无限循环.
如果你要动态改变step
你就要用do

while
循环实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我们的梦168
2014-09-17 · TA获得超过194个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:168万
展开全部
使用下面的语句测试,说明它应该是无限循环的。
Private Sub Command1_Click()
For i = 2 To 4 Step 0 ‘这句换为For i = 2 To 2 Step 0也行)
j = j + 1
Debug.Print j
If j > 10 Then Exit Sub
Next i
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式