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)
您需要一个循环,否则整个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)
| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |