没有for循环递增

Ger*_* Mc 0 c# oop for-loop if-statement

我有以下代码,我想创建一些守门员对象,然后是一些Defender对象,然后是Midfielders等等.我的目的是在创建每个对象后使用i整数增量,并使用if语句来检查我是什么值并相应地分配一个玩家类型.

目前,我将所有对象作为守门员对象返回,这意味着我没有递增.我有什么想法可以解决这个问题?

//create different types of player
int i = 0;


if (i < 2)
{
    i+=1;
    //create gk
    p = new Goalkeeper(fname, lname, saves, tackles, assists, goals, minutesplayed, fitness);
}
else if (i >= 2 && i < 9)
{
    i++;
    //create d
    p = new Defender(fname, lname, headerswon, tackles, assists, goals, minutesplayed, fitness);
}
else if (i >= 9 && i < 16)
{
    i++;
    //crete mf
    p = new Midfielder(fname, lname, passsuccessrate, tackles, assists, goals, minutesplayed, fitness);
}
else
{
    i++;
    //create striker
    p = new Striker(fname, lname, shotsontarget, tackles, assists, goals, minutesplayed, fitness);
}

return p; //return the randomly generated player
Run Code Online (Sandbox Code Playgroud)

its*_*e86 5

您需要一个循环,否则整个if分支结构只检查一次.

为什么你厌恶厌恶?使用循环,它非常简单:

List<Player> players = new List<Player>();

for (int i = 0; i < numPlayers; ++i)
{
    Player p;

    if (i < 2)
        p = new GoalKeeper(...);
    else if (i < 9)
        p = new Defender(...);
    else if (i < 16)
        p = new Midfielder(...);
    else
        p = new Striker(...);

    players.Add(p);
}
Run Code Online (Sandbox Code Playgroud)

  • @GerMc ......但你的问题具体说,"......没有for循环" (3认同)