Dim a(6) As Integer, n As Integer
Private Sub Command1_Click()’掷
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()‘统计
Print "点数", "次数"
For i = 1 To 6
Print i, a(i)
Next i
End Sub
Private Sub Form_Load()
Timer1.Interval = 20
End Sub
Private Sub Timer1_Timer()
x = Int(6 * Rnd) + 1
Label1.Caption = x
n = n + 1
If n = 30 Then
n = 0
Timer1.Enabled = False
a(x) = a(x) + 1
End If
End Sub
这段代码可以用数学中的复合命题辅助理解,该段代码中的ifi<>2
or
i<>4
then
可以理解为“或命题”(举丛p
or
q),在或命题,只要p或者q有一个是真的正伍樱,那么命题“p
or
q”就是真命题,要想“p
or
q”成为假命题,必须p和q都为假才行。再看这段代码:
For
i
=
0
To
6
If
i
<>
2
Or
i
<>
4
Then
Shape2(i).FillColor
=
&H0&
End
If
Next
i
在区间[0,6]中,任意橘贺一个整数只要满足“
i
<>
2
Or
i
<>
4
”这个或命题就可以继续执行代码,这样的整数有多少?有7个,0到6都是(把2和4拿出来看,2=2,不满足或命题的一个条件,但是满足另外一个,即2不等于4,同理,4也是如此)。
这段代码的if
then
语句部分可以改成i不等于任何整数,比如改成“if
i<>1
or
i<>5
then”或者“if
i<>3
or
i<>6
then”等等,这样改动不会影响程序运行。所以我认为这段代码中加入“if
then”语句是多余的(加了不会影响程序运行),不如直接写成:
For
i
=
0
To
6
Shape2(i).FillColor
=
&H0&
Next
i
Private Sub Command1_Click()Dim a(1 To 空差6), n, i
Randomize
For i = 1 To 200
n = Int(Rnd * 6) + 1
a(n) = a(n) + 1
Next
Text1 = "掷骰子200次结果:" & vbCrLf
For i = 1 To 6
Text1 = Text1 & "掷" & i & "点" & 誉亏旅a(i) & "次" 庆凳& vbCrLf
Next
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)