C# 无for循环递增
我有下面的代码,我想创建一些守门员对象,然后是防守球员对象,然后是中场球员等等。 我的意图是在创建每个对象后使用i整数增量,并使用if语句检查i的值,并相应地分配一个播放器类型 现在,我把我所有的东西都作为守门员的东西拿回来,这意味着我没有增加。有没有办法解决这个问题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
//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、铲球、助攻、进球、上场分钟数、体能);
}