VB的程序问题
例3-9找出一个在1~1000中被7除余5、被5除余3、被3除余2的数(Exitfor)PrivateSubForm_Click()DimiAsIntegerFori=1...
例3-9 找出一个在1~1000中被7除余5、被5除余3、被3除余2的数(Exit for)
Private Sub Form_Click()
Dim i As Integer
For i =1 To 1000
If i mod 7=5 and i Mod 5 = 3 and i Mod 3 = 2 _ Then Exit For '返回满足的第一个数
Next i
If i <= 1000 Then
Print i
End Sub
1、什么叫返回第一个数,不是找到就好了吗,有很多个的话为什么要返回第一个数,随便从符合条件的挑一个不就行了吗?2、Exit for 不是强制退出的意思吗,为什么可以用在这里?这样不会退出吗?3、If i <= 1000 Then Print i,不是本身就说了 for i =1 to 1000吗,这样i不就已经规定在1000里了吗,为什么最后这句还要说? 展开
Private Sub Form_Click()
Dim i As Integer
For i =1 To 1000
If i mod 7=5 and i Mod 5 = 3 and i Mod 3 = 2 _ Then Exit For '返回满足的第一个数
Next i
If i <= 1000 Then
Print i
End Sub
1、什么叫返回第一个数,不是找到就好了吗,有很多个的话为什么要返回第一个数,随便从符合条件的挑一个不就行了吗?2、Exit for 不是强制退出的意思吗,为什么可以用在这里?这样不会退出吗?3、If i <= 1000 Then Print i,不是本身就说了 for i =1 to 1000吗,这样i不就已经规定在1000里了吗,为什么最后这句还要说? 展开
1个回答
展开全部
1、为什么返回第一个数:题目中已说明“找出一个在1~1000中被7除余5、被5除余3、被3除余2的数”,重点是“一个”,所以上述程序中返回了一个,且是第一个,当然你也可以通过修改程序让其返回第二个或第N个;
2、为什么用EXIT FOR:因为已经找到了满足题目的数字,所以没必要再继续FOR循环,直接退出就可以了;
3、为什么要加IF I<=1000 :因为假如1000中没有满足题目的数字,在结束FOR循环时,i 的值就等于1001,按上述程序的意思就不需要输出,所以加判断语句。
楼主,明白了吗?
2、为什么用EXIT FOR:因为已经找到了满足题目的数字,所以没必要再继续FOR循环,直接退出就可以了;
3、为什么要加IF I<=1000 :因为假如1000中没有满足题目的数字,在结束FOR循环时,i 的值就等于1001,按上述程序的意思就不需要输出,所以加判断语句。
楼主,明白了吗?
追问
前两个明白了,第三个,为什么会取到1001啊?
追答
FOR 循环的循环条件是1<= i <= 1000,即 i 会从1遍历到1000,当i = 1001时,FOR 循环终止。所以i 这时的值是1001喽。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询