一维数组中的条件语句

时间:2012-11-02 23:22:25

标签: c# for-loop

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循环中运行一次?

3 个答案:

答案 0 :(得分:2)

您可以将flagcounterif块结合使用。

if (counter == 0)
{
    NextMove = playerPositions[i] + DiceThrow();
    counter++;
}

使用firstIterationbool 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;
}