湘潭市行政地图:教我个vb题目

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 03:10:57
有如下事件过程
private sub command1_click()
n=5
for i =2 to 5
for j =2 to sqr(i)
if i mod j =0 then exit for
next j
if j>sqr(i) then print i
next i
end sub
程序运行后,单击命令按钮,在窗体上显示的内容是什么?
高手给我讲出是怎么做的呀!语句的意义也要的哦!

你这里的n定义起来没有用到,这个程序的执行结果是
2
3
5
我用VB 6.0调试过,这是正确答案
主要实现是这样的:
第一次外循环,首先是i等于2,判断下面的分支语句发现条件成立,则跳出内循环,再判断内循环中的循环变量值大于sqrt(i),所以要打印2
下面的循环基本道理跟第一次循环道理一样
当i循环变量的值变为4的时候两个分支语句判断都不成立,所以不打印4这个值

1: Private Sub Command1_Click()
2: n = 5
3: For i = 2 To 5 ' i 从 2 循环到 5
4: For j = 2 To Sqr(i) ' j 从 2 循环到 i 的平方根
5: If i mod j = 0 Then Exit For ' 如果 i 能被 j 整除则退出循环(至第 7 行)
6: Next j
7: If j > Sqr(i) Then Print i ' 如果 j 大于 i 的平方根则打印 i
8: Next i
9: End Sub

如果第 5 行中,i 被 j 整除了,那么退出循环到达第 7 行时,j 必然比 i 的平方根要小。因此不会被打印。只有当 第 4 行的循环执行结束后,i 仍然不能被 j 整除时,i 才会在第 7 行时被打印出来。

这个程序的意义在于找出 2 到 5 之间的质数。
因此打印出来的应该是 3 和 5。