VB For……Next循环函数问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:41:27
窗体上画一个命令按牛,编写如下时间过程:

Private Sub Command1_Click()
For i = 1 To 5
x = Val(InputBox("回车:"))
If x / 3 = Int(x / 3) Or x / 5 = Int(x / 5) Then s = s + x
Next i
Print s
End Sub

运行以后分别输入12。14。16。18。20
求最后输出的结果是多少? 答案是50

请高手把详细分析步骤写给我,强烈感谢!

首先,If x / 3 = Int(x / 3) Or x / 5 = Int(x / 5) Then s = s + x
这条语句就是检查输入框里你输入的数值是否能被3整除或被5整除,如果不能则继续执行下一语句,如果能则将这个数值与s相加.
你输入12,能被3整除则s等于12,你输入14,16则不能被3或5整除,跳过.,你输入18,能被3整除,你输入20,能被5整除,因此18与20 都要与s 相加
因此s的值应该等于12+18+20=50
你输出s当然就该50咯

将If x / 3 = Int(x / 3) Or x / 5 = Int(x / 5) Then s = s + x
换成

If x Mod 3 = 0 Or x Mod 5 = 0 Then s = s + x

输入的数被3或5整除。你的表达式让人头痛。我给你的这个简单明了。

Mod,商取余数

If x / 3 = Int(x / 3) Or x / 5 = Int(x / 5) Then s = s + x
就是说,如果加入的数能被3或这5整除的,就加起来

14/3=4.666...., int(14/3)是取整数,=4
所以这个不符合要求

其实就是12+18+20=50