比较for---next与do---loop的具体区别

湫龙 2010-04-24 09:54:09
请高手指教如何清晰认清比较for---next与do---loop的具体区别? 以及适用的范围??
若一段代码是:如何用for---next代替do---loop来实现?????

Private Sub Form_Load()
Dim p As Integer
Randomize
p = ""
For i = 1 To 10
Do
x = Int(Rnd * 91 + 10)
yes = 0
For j = 1 To i - 1
If x = a(i) Then
yes = 1
Exit For
End If
Loop While yes = 1

Next i
End Sub
...全文
1212 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cover2007 2010-05-12
  • 打赏
  • 举报
回复
恩,do用的是未知次数的,for用的是有限次数的
sunsoncheng 2010-05-11
  • 打赏
  • 举报
回复
可以的话,我都用for next

因为有资料说这个会快些
LCYHDN 2010-05-11
  • 打赏
  • 举报
回复
FOR 能明确知道循环次数,并且至少1次,而DO只有满足条件是才循环,不能确定次数,可以一次也不循环 与DO WHILE 相同
ning1958 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 a1875566250 的回复:]
For...Next是已知循环次数,你需要循环多少次。
(PS:某些时候,不懂用Do...Loop循环的家伙,我见过一个,他就开个For循环,循环值就是10000000....,然后在循环里面判断退出。。。这种人还真把For当Do用了。。。)

Do...Loop广义来说是未知类循环,你根本不知道它有多少,要循环多少次,就需要在循环中实时判断退出条件。
Do While语句的循环是Do循环……
[/Quote]
赞成这个观点。
倒大霉的上帝 2010-05-04
  • 打赏
  • 举报
回复
chinaboyzyq 2010-05-04
  • 打赏
  • 举报
回复
赵4老师 2010-05-04
  • 打赏
  • 举报
回复
for事先知道循环次数,循环体可能一次也不执行,提前退出用exit for
do事先不知道循环次数,循环体至少执行一次,提前退出用exit do
伍哥的传说 2010-05-03
  • 打赏
  • 举报
回复
你写得这两个没得什么区别,不过当WHILE写在前面时,是当DO后面的条件为真才成立,可以和 do until.....loop区别
舉杯邀明月 2010-04-25
  • 打赏
  • 举报
回复
简单的说:

在明确 初始值、终值和步长 的情况下,适合用 For .......... Nexe 。

在一定的逻辑条件下进行循环(或终止循环),适合用 Do ....... Loop 。
chinaboyzyq 2010-04-25
  • 打赏
  • 举报
回复
For...Next 语句
以指定次数来重复执行一组语句。

Do...Loop 语句
当条件为 True 时,或直到条件变为 True 时,重复执行一个语句块中的命令。

很多时候for...next是不能代替do...loop,因为你根本就不知道循环体要执行多少遍。
比如你举的例子中的do..loop,你会知道它循环多少次吗?
a1875566250 2010-04-25
  • 打赏
  • 举报
回复
For...Next是已知循环次数,你需要循环多少次。
(PS:某些时候,不懂用Do...Loop循环的家伙,我见过一个,他就开个For循环,循环值就是10000000....,然后在循环里面判断退出。。。这种人还真把For当Do用了。。。)

Do...Loop广义来说是未知类循环,你根本不知道它有多少,要循环多少次,就需要在循环中实时判断退出条件。
Do While语句的循环是Do循环的一种简单自动判断模式,一般可以使用,不过需要判断的条件太多太杂的时候只能在Do...Loop循环里面使用If语句判断。
白云飘飘飘 2010-04-25
  • 打赏
  • 举报
回复
for---next是计数型循环,用于循环次数上限已经的情况。可用exit for中止循环。
do loop用于循环次数上限未知的情况,可用 exit do中止循环
do while---loop是当型循环,执行循环体前首先检查条件是否成立,不成立则中止
do loop while是直到型循环,执行循环体后再检查条件是否成立,不成立则中止。
ningweidong 2010-04-24
  • 打赏
  • 举报
回复
for next跟do loop都可以实现循环,用for实现的循环,都改成do语句来实现,而do循环,也都可以改为for语句来实现。关键就是看你更喜欢用哪一种循环了。
s_p_kvw3000 2010-04-24
  • 打赏
  • 举报
回复
个人意见,for---next循环比较适合循环条件类似(从..开始到..结束)这样的,而do---loop循环比较适合循环条件类似(当。。的时候)这样的
threenewbee 2010-04-24
  • 打赏
  • 举报
回复
for i = 1 to 100
...
next i
等效
i = 1
do
if i > 100 then exit do
...
i = i + 1
loop

do
...
loop

也可以等效
for i = 1 to 2
...
i = i - 1
next

所以没有区别。
贝隆 2010-04-24
  • 打赏
  • 举报
回复
都是循环,具体请查阅MSDN

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧