| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 317 人关注过本帖
标题:有个低级问题想请教
只看楼主 加入收藏
liujunzhi911
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
有个低级问题想请教
Private Sub Form_Click()
Dim a(10) As Integer, i As Integer
Randomize
i = 0
Do
num = Int(Rnd * 90) + 10
For j = 1 To i
If num = a(j) Then
Exit For
End If
Next j
If j > i Then
i = i + 1
a(i) = num
End If
Loop While i < 10
For i = 1 To 9
For j = i + 1 To 9
If a(i) > a(j) Then temp = a(i): a(i) = a(j): a(j) = temp
Next j
Next i
For i = 1 To 10
Print a(i)
Next i
End Sub
这是个随机数生成并排序的代码,然而有一句怎么读都读不懂
Do
num = Int(Rnd * 90) + 10
For j = 1 To i
If num = a(j) Then
Exit For
End If
Next j
If j > i Then
i = i + 1
a(i) = num
End If
Loop While i < 10
这句中按第一次运行可以得出a(1)的值,而当第二次循环时发现 if J>i Then后面的运行是不可行的,因此应该不能进行i的递增,也就应该成为死循环了。但在VB中运行时却可以进行循环,这个问题请各位大神指点下。本人新手多多指教
 
2013-09-26 13:55
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
i = 0                             'I开始为零
Do                                '循环开始
num = Int(Rnd * 90) + 10          '产生10-99 的随机数
For j = 1 To i                    '查找已产生的数据
If num = a(j) Then                '刚产生的数据等于已产生的数据
Exit For                          '退出循环
End If
Next j                            'for 循环结束
If j > i Then                     '是否是正常退出循环,当正常退出循环时,J=i+1;exit for 退出时,J<i
i = i + 1                         '正常退出时,计数累计 1,也就是DO 循环里再产生下一个随机数
a(i) = num                        '保存刚产生的数据,放到已产生的数据里去
End If
Loop While i < 10                 '没有产生10个数之前就继续DO循环

你调试时,不能单步,只能在 i=i+1 这行下断点。

授人于鱼,不如授人于渔
早已停用QQ了
2013-09-26 14:23
liujunzhi911
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-15
收藏
得分:0 
回复 2楼 风吹过b
正常退出for时不是初值等于终值的吗,为什么j=i+1求指点下
2013-09-26 14:56
liujunzhi911
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-15
收藏
得分:0 
回复 2楼 风吹过b
哦好像明白了,判段for循环后步长还加了1然后判断正常退出for,我忘了谢谢了
2013-09-26 15:01
快速回复:有个低级问题想请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018942 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved