我必须编写一个在土狼和路行者之间的竞赛程序。两者都从1开始,并且终点线是5。每次轮流移动直到达到5。我不知道如何使用for循环而不是do until循环来做到这一点。
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
Dim moves, mover, r, c, d As Integer
Dim rand As New Random
r = 1
c = 1
Do Until c = 5 Or r = 5
mover = rand.Next(2)
If mover = 0 Then
moves = rand.Next(1, 11)
If moves <= 6 Then
r = r + 1
ElseIf moves > 6 Then
r = r + 2
End If
End If
If mover = 1 Then
moves = rand.Next(1, 11)
If moves <= 6 Then
c = c + 1
ElseIf moves > 6 Then
c = c + 2
End If
End If
Loop
If r = 5 Then
lblWinner.Text = ("Roadrunner is the winner!")
End If
If c = 5 Then
lblWinner.Text = ("Coyote is the winner!")
End If
End Sub
答案 0 :(得分:0)
如果您确切知道循环将执行多少次,请使用For循环。如果迭代次数未知,请使用While循环。您知道该程序准确执行的次数吗?不可以。每次可以移动2步,并在5圈内结束比赛。因此,通过循环可能在5到10圈之间,因此未知循环执行的确切次数。
答案 1 :(得分:0)
尽管Loop Until
似乎是解决问题的方法,但是如果有特定的原因想要使用for循环,则可以始终使用:
If (c = 5) OrElse (r = 5) Then
Exit For
End If