C# 无for循环递增

C# 无for循环递增,c#,oop,for-loop,if-statement,C#,Oop,For Loop,If Statement,我有下面的代码,我想创建一些守门员对象,然后是防守球员对象,然后是中场球员等等。 我的意图是在创建每个对象后使用i整数增量,并使用if语句检查i的值,并相应地分配一个播放器类型 现在,我把我所有的东西都作为守门员的东西拿回来,这意味着我没有增加。有没有办法解决这个问题 //create different types of player int i = 0; if (i < 2) { i+=1; //create gk p = new Goalkeeper(fn

我有下面的代码,我想创建一些守门员对象,然后是防守球员对象,然后是中场球员等等。 我的意图是在创建每个对象后使用i整数增量,并使用if语句检查i的值,并相应地分配一个播放器类型

现在,我把我所有的东西都作为守门员的东西拿回来,这意味着我没有增加。有没有办法解决这个问题

//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
//创建不同类型的播放器
int i=0;
如果(i<2)
{
i+=1;
//创建gk
p=新门将(fname、lname、扑救、铲球、助攻、进球、上场分钟数、体能);
}
else如果(i>=2&&i<9)
{
i++;
//创建d
p=新后卫(fname、lname、头球得分、铲球、助攻、进球、上场分钟数、体能);
}
否则如果(i>=9&&i<16)
{
i++;
//克里特mf
p=新中场(fname、lname、传球成功率、铲球、助攻、进球、上场分钟数、体能);
}
其他的
{
i++;
//创造前锋
p=新前锋(fname、lname、shotsontarget、铲球、助攻、进球、上场分钟数、体能);
}
返回p//返回随机生成的播放器
使我静止

//创建不同类型的玩家

静态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
if(i<2)
{
i+=1;
//创建gk
p=新门将(fname、lname、扑救、铲球、助攻、进球、上场分钟数、体能);
}
else如果(i>=2&&i<9)
{
i++;
//创建d
p=新后卫(fname、lname、头球得分、铲球、助攻、进球、上场分钟数、体能);
}
否则如果(i>=9&&i<16)
{
i++;
//克里特mf
p=新中场(fname、lname、传球成功率、铲球、助攻、进球、上场分钟数、体能);
}
其他的
{
i++;
//创造前锋
p=新前锋(fname、lname、shotsontarget、铲球、助攻、进球、上场分钟数、体能);
}
返回p//返回随机生成的播放器
使我静止

//创建不同类型的玩家

静态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
if(i<2)
{
i+=1;
//创建gk
p=新门将(fname、lname、扑救、铲球、助攻、进球、上场分钟数、体能);
}
else如果(i>=2&&i<9)
{
i++;
//创建d
p=新后卫(fname、lname、头球得分、铲球、助攻、进球、上场分钟数、体能);
}
否则如果(i>=9&&i<16)
{
i++;
//克里特mf
p=新中场(fname、lname、传球成功率、铲球、助攻、进球、上场分钟数、体能);
}
其他的
{
i++;
//创造前锋
p=新前锋(fname、lname、shotsontarget、铲球、助攻、进球、上场分钟数、体能);
}
返回p//返回随机生成的播放器

您需要一个循环,否则整个
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);
}
List players=newlist();
对于(int i=0;i
您需要一个循环,否则整个
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);
}
List players=newlist();
对于(int i=0;i
已解决:我从调用方法传递一个int。谢谢大家

private Player GetRandomPlayer(int count)
            {

                    Player p; //create new player

                //calculate various stats using random
                int tackles = rand.Next(0, 20);
                int assists = rand.Next(0, 3);
                int goals = rand.Next(0, 3);
                int  minutesplayed = rand.Next(0, 90);
                int saves = rand.Next(0,30);
                int headerswon = rand.Next(0, 20);
                int passsuccessrate = rand.Next(0, 100);
                int shotsontarget = rand.Next(0, 25);
                string fitness = "Fit";

                //create random player names from the names data declared earlier
                string fname = firstnames[rand.Next(0, firstnames.Length)];
                string lname = lastnames[rand.Next(0, lastnames.Length)];

                //2gk, 7d,7m,4 striker

                //create different types of player





                    if (count < 2)
                    {

                        //create gk
                        p = new Goalkeeper(fname, lname, saves, tackles, assists, goals, minutesplayed, fitness);

                    }
                    else if (count < 9)
                    {

                        //create d
                        p = new Defender(fname, lname, headerswon, tackles, assists, goals, minutesplayed, fitness);

                    }
                    else if (count < 16)
                    {

                        //crete mf
                        p = new Midfielder(fname, lname, passsuccessrate, tackles, assists, goals, minutesplayed, fitness);

                    }
                    else
                    {

                        //create striker
                        p = new Striker(fname, lname, shotsontarget, tackles, assists, goals, minutesplayed, fitness);

                    }



                    return p; //return the randomly generated player





        }
私人玩家GetRandomPlayer(整数计数)
{
Player p;//创建新的播放器
//使用随机变量计算各种统计数据
内特铲球=兰特下一步(0,20);
int assists=rand.Next(0,3);
int goals=rand.Next(0,3);
int minutesplayed=rand.Next(0,90);
int saves=rand.Next(0,30);
int headerswon=rand.Next(0,20);
int passsuccessrate=rand.Next(0,100);
int shotsontarget=rand.Next(0,25);
string fitness=“Fit”;
//根据前面声明的名称数据创建随机播放器名称
字符串fname=firstnames[rand.Next(0,firstnames.Length)];
string lname=lastnames[rand.Next(0,lastnames.Length)];
//2gk,7d,7m,4前锋
//创建不同类型的玩家
如果(计数<2)
{
//创建gk
p=新门将(fname、lname、扑救、铲球、助攻、进球、上场分钟数、体能);
}
否则如果(计数<9)
{
//创建d
p=新后卫(fname、lname、头球得分、铲球、助攻、进球、上场分钟数、体能);
}
否则,如果(计数<16)
{
//克里特mf
p=新中场(fname、lname、传球成功率、铲球、助攻、进球、上场分钟数、体能);
}
其他的
{
//创造前锋
p=新前锋(fname、lname、shotsontarget、铲球、助攻、进球、上场分钟数、体能);
}