for (int i = 0; i < NumberOfPlayers; i++)
{
NextMove = playerPositions[i] + DiceThrow();
while (RocketInSquare(NextMove) == true)
playerPositions[i] = NextMove++;
playerPositions[i] = NextMove;
}
我在使用这个for循环时遇到了一些麻烦。有没有办法可以划清界限:
NextMove = playerPositions[i] + DiceThrow();
只在for循环中运行一次?
答案 0 :(得分:2)
您可以将flag
或counter
与if
块结合使用。
if (counter == 0)
{
NextMove = playerPositions[i] + DiceThrow();
counter++;
}
使用firstIteration
(bool firstIteration
),
firstIteration = false;
....
for (...)
{
if (firstIteration)
{
NextMove = playerPositions[i] + DiceThrow();
firstIteration = !firstIteration; // Toggle the flag
}
}
答案 1 :(得分:2)
保持旗帜
bool flag = false;
for (int i = 0; i < NumberOfPlayers; i++)
{
if(!flag)
{
NextMove = playerPositions[i] + DiceThrow();
flag = true;
}
while (RocketInSquare(NextMove) == true)
{
playerPositions[i] = NextMove++;
}
playerPositions[i] = NextMove;
}
答案 2 :(得分:2)
你应该把那条线移出循环。
NextMove = playerPositions[0] + DiceThrow();
for (int i = 0; i < NumberOfPlayers; i++)
{
while (RocketInSquare(NextMove))
NextMove++;
playerPositions[i] = NextMove;
}