【发布时间】:2012-01-29 17:08:41
【问题描述】:
我正在使用这个循环来检查我的数据库,并检查 player Club 字段是否与 clubAway 变量匹配。在 if 语句中它“发疯了”。
Baza = 数据集
玩家 = 数据库中的表
Club = int 字段
int clubAway
我用消息框检查了这些值,例如:Club = 1 and IDclub = 2.. 但它还是进入了 if 语句。我有完全相同的 for 循环,不同之处在于 clubAway 是 clubHome 并且工作正常。
for (int o = 0; o <= 10; o++)
{
for (int p = 1; p <= Baza.Players.Count; p++)
{
if (Baza.Players[p - 1 + o].Club == clubAway.IDclub)
{//do something
}
}
}
【问题讨论】:
-
"goes bezerk" 不能很好地描述发生的事情。请参阅tinyurl.com/so-hints。我预计会有一个例外,因为
p - 1 + o肯定会超出Baza.Players的范围。 -
在监视窗口中是否有类似
Baza.Players[p++]或带有o++的内容,因为这些会在单步执行代码时更改值。 -
@JonSkeet 他解释了发生了什么——它忽略了 if 条件并进入了 if 语句的主体。
-
您可能会添加更多上下文,但从我看来,您似乎只有一个数组 - 为什么要循环两次?
-
o变量的用途是什么?有一点澄清,我可能可以帮助你。