我写了下面的代码洗牌一副纸牌:For循环不表现为预期没有嵌套的DO-而
int i,j;
for(int x=1;x<53;x++) {
i=rand()%4;
j=rand()%13;
if(deck[i][j]=0)
deck[i][j]=x;
else
x--;
}
这并没有产生任何结果,而下面的代码产生的结果:
int i,j;
for(int x=1;x<53;x++) {
do {
i=rand()%4;
j=rand()%13;
} while(deck[i][j]!=0);
deck[i][j]=x
}
这有什么不同?
你是什么意思*没有产生任何结果*?你在期待什么,实际发生了什么? – 2011-03-07 14:28:30
'if(deck [i] [j] = 0)'是赋值,因此总是为真,使用比较运算符'=='并再次检查。 – sled 2011-03-07 14:28:44
@sled,你是不是故意“因此总是虚假”? – 2011-03-07 15:46:31