如何用 While...Wend 和 Do...Until 模拟抛硬币?
How to simulate a coin flip with While... Wend and Do... Until?
开发一个解决方案,将硬币掷给定次数,然后打印出正面数和反面数。抛硬币的方程式是
Coin = Integer(random*2) + 1
当 Coin = 1 时,抛出正面,当 Coin = 2 时,抛出反面。
随机returns一个介于0和1之间的数字,包括0,但不包括1。
因此,当random小于0.5时,Coin等于1;当random大于等于0.5小于1时,Coin等于2.
结构:While...wend 和 Do...Until
我已经完成了 For Next 结构,但我无法将其转换为那些结构。
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
For i = 1 To flips
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Next i
MsgBox (heads & " heads, " & tails & " tails.")
循环
原理
' For
For i = 1 To flips
'...
Next i
' While
i = 0 ' by default
While i < flips
i = i + 1
'...
Wend
' Do (1)
i = 0 ' by default
Do Until i = flips
i = i + 1
'...
Loop
' Do (2)
i = 0 ' by default
Do
i = i + 1
'...
Loop Until i = flips
已应用
Sub flipsFor()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' For
For i = 1 To flips
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Next i
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
Sub flipsWhile()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' While
i = 0 ' by default
While i < flips
i = i + 1
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Wend
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
Sub flipsDo1()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' Do (1)
i = 0 ' by default
Do Until i = flips
i = i + 1
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Loop
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
Sub flipsDo2()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' Do (2)
i = 0 ' by default
Do
i = i + 1
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Loop Until i = flips
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
开发一个解决方案,将硬币掷给定次数,然后打印出正面数和反面数。抛硬币的方程式是
Coin = Integer(random*2) + 1
当 Coin = 1 时,抛出正面,当 Coin = 2 时,抛出反面。
随机returns一个介于0和1之间的数字,包括0,但不包括1。
因此,当random小于0.5时,Coin等于1;当random大于等于0.5小于1时,Coin等于2.
结构:While...wend 和 Do...Until
我已经完成了 For Next 结构,但我无法将其转换为那些结构。
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
For i = 1 To flips
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Next i
MsgBox (heads & " heads, " & tails & " tails.")
循环
原理
' For
For i = 1 To flips
'...
Next i
' While
i = 0 ' by default
While i < flips
i = i + 1
'...
Wend
' Do (1)
i = 0 ' by default
Do Until i = flips
i = i + 1
'...
Loop
' Do (2)
i = 0 ' by default
Do
i = i + 1
'...
Loop Until i = flips
已应用
Sub flipsFor()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' For
For i = 1 To flips
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Next i
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
Sub flipsWhile()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' While
i = 0 ' by default
While i < flips
i = i + 1
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Wend
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
Sub flipsDo1()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' Do (1)
i = 0 ' by default
Do Until i = flips
i = i + 1
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Loop
MsgBox (heads & " heads, " & tails & " tails.")
End Sub
Sub flipsDo2()
Dim flips As Integer, heads As Integer, tails As Integer, i As Integer
heads = 0
tails = 0
flips = InputBox("How many flips?") + 0
' Do (2)
i = 0 ' by default
Do
i = i + 1
If (Rnd * 2) + 1 >= 0.5 And (Rnd * 2) < 1 Then
tails = tails + 1
Else
heads = heads + 1
End If
Loop Until i = flips
MsgBox (heads & " heads, " & tails & " tails.")
End Sub