我寫了下面的代碼洗牌一副紙牌: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