首先,我是法国人,如果我犯了一些错误,请原谅我
我从Visual Basic开始,我从2个月开始上课,我在大学开设了第一个“大”项目
我的模块如下:
Public Function CanPlay(ByVal i As Integer) As Boolean
Dim possible As Boolean
Dim t() As Integer
For i = 1 to 6
If t(i) = 0 Then
possible = False
Else possible = True
Next i
Return possible
End Function
我正在创建一个名为Kalaha的游戏,并且需要说明一个玩家是否可以玩,如果t(i)在所有情况下等于0,则玩家无法玩 但是我的第一个“t(i)= 0”不起作用,他用绿色标出它并说没有为t分配值但是我刚开始宣布它...
答案 0 :(得分:1)
声明数组“t”的尝试是不正确的,并且没有尝试用值初始化它。
以下行可用于声明和初始化数组。
Dim t As Integer() = New Integer() {0, 0, 1, 2, 3, 4, 5 }
另请注意,VB.NET使用基于零的数组,因此您的第一个数组值为t(0)。
答案 1 :(得分:0)
无需将i作为参数传递给CanPlay函数。我可以在循环中声明。您更有可能将t数组作为参数传递,而不是在本地声明它。
正如JohnH指出的那样,VB.NET数组从元素零开始。您可以迭代到t.GetUpperBound(0)以捕获每个元素,直到数组的最高元素。如果你超越最高元素,你将获得“越界”例外。
您不需要“可能的”布尔变量。正如mcNets指出的那样,每次调用CanPlay时都会返回t(6),这会使循环变得毫无意义。只要在数组中找到非零值,只需返回True即可。如果退出循环而不返回True,则表示未找到零值,因此返回值为False。
Public Function CanPlay(ByVal t As Integer()) As Boolean
For i As Integer = 0 to t.GetUpperBound(0)
If t(i) <> 0 Then Return True
Next
Return False
End Function
您可以按如下方式调用CanPlay函数:
Dim bCanPlay As Boolean = CanPlay(New Integer() {0, 0, 1, 2, 3, 4, 5 })