新手求助!C#入门经典3中一个示例中的代码不理解
public void Shuffle()
{
Card[] newDeck = new Card[52];
bool[] assigned = new bool[52];
Random sourceGen = new Random();
for (int i = 0; i < 52; i++)
{
int destCard = 0;
bool foundCard = false;
while (foundCard == false)
{
destCard = sourceGen.Next(52);
if (assigned[destCard] == false)
foundCard = true;
}
assigned[destCard] = true;
newDeck[destCard] = cards[i];
}
newDeck.CopyTo(cards, 0);
这是一副扑克牌.Shuffle()是创建1个扑克牌临时数组.并把扑克牌从现有的数组随即复制到这个数组中.每次循环,都用.NET Framework中的System.Random类的实例生成一个0-51之间的随即数.进行了实例后,对象就使用方法Next(X)生成0-x之间的随即数.有了1个随即数后,就可以使用他作为临时数组中Card对象的下标.以便复制cards数组中的扑克牌.
还有1个bool变量的数组,在复制每张牌时,把改数组中的值指定为true.生成随即数时检查这个数组,看看是否已经把一张牌复制到临时数组中由随即数指定的位置上了.如果复制好了,就将生成另一个随即数.
上面是书中的解释.我不太理解其中的代码.
bool foundCard=false;中的foundCard是什么.为什么这样写呢?
int destCard = 0;
bool foundCard = false;
while (foundCard == false)
{