这是我的剧本:
for (int Card1 = Card1player2->Caption.ToInt(); Card1 > 0 && Number - 10 >= 0; Card1 - 1)
{
Number - 10;
Sleep(1000); Pictureplayer2->Picture->LoadFromFile("/*Plaatje*/");
}
我使用c ++ builder。
... PS 这些是我的变数:
Card1player2->Caption.ToInt() = 4
Number = 20
答案 0 :(得分:4)
这是一个无限循环,至少因为你永远不会改变控制循环终止的任何变量的值。表达式Card1 - 1
没有任何重要作用,表达式Number - 10
也没有做任何事情。他们只是计算结果然后丢弃它。
如果您打算在每次迭代时递减Card1
,则必须确保在Card1
中实际存储新值而不是丢弃它。您可以Card1 = Card1 - 1
执行此操作。或者,您可以使用"简写"像--Card1
或Card1 -= 1
这样的表单,它们做同样的事情。但你现在所拥有的只是没有效果。
答案 1 :(得分:4)
Card1 - 1;
不会更改Card1
的值。它会创建一个临时的int
来保存减法的结果,该结果不会被使用并立即丢弃。
您必须使用-=
运算符:
Card -= 1;
或者,由于您减去1,因此您也可以使用--
:
--Card;
与Number - 10;
相同的问题。
答案 2 :(得分:1)
您永远不会更改Number
或Card1
的值,因此循环无法结束。我想你想要更像的东西:
for (/* ...your stuff... */; --Card1)
答案 3 :(得分:1)
试试这个
for (int Card1 = Card1player2->Caption.ToInt(); Card1 > 0 && (Number - 10) >= 0; Card1--)
{
Number -= 10;
Sleep(1000); Pictureplayer2->Picture->LoadFromFile("/*Plaatje*/");
}