我試圖如何在objective-c中爲循環聲明一個int和double?
for (int i = 0, double j = 0.0f; i <= 30; i++, j++)
,但它不喜歡那個。它說'''未申報'。如果兩者都是整數,它就會奏效。沒有辦法在for循環中聲明它嗎?
我試圖如何在objective-c中爲循環聲明一個int和double?
for (int i = 0, double j = 0.0f; i <= 30; i++, j++)
,但它不喜歡那個。它說'''未申報'。如果兩者都是整數,它就會奏效。沒有辦法在for循環中聲明它嗎?
您只能在循環初始化器中使用單個語句。所以你必須要申報外循環的瓦爾的至少一個:
int i;
double j;
for (i = 0, j = 0.0f; i <= 30; i++, j++)
如果有工作兩年 INT單詞你可能使用for (int i = 0, j = 0; ...)
這是有效的,因爲只有一個語句(聲明多個變量)用來。
如何在循環之前聲明它們?變量聲明中的逗號僅用於區分類型,而且它是一個令人困惑的讀取,無論如何。更何況,更難以知道什麼時候會發生什麼。順便說一句,float上的「++」在技術上並不會產生精確值(不能保證,就像int),所以我也很好奇爲什麼你需要這樣做。
int i;
double j = 0.0f;
for(i=0; i<=30; i++) {
j += 1.0f;
// other stuff
}
更容易閱讀,反正。也許特別是對於其他人,至今還不熟悉它正在做什麼。
我不是一個Objective-C程序員,但是我所知道的for循環是,你不能用中間的逗號聲明。
int i, double j;
是不允許的。所以你必須做的是決定使用double還是integer。
換句話說,沒有辦法像在for循環的括號內所做的那樣聲明。
使用int i, j;
或double i, j
!
for
循環的初始化程序部分只能是單個語句。您可以在單個語句中聲明多個常用類型的變量,例如int i, j;
,但不能以這種方式聲明不同類型的多個變量。
如果你想這兩個值限制在for
-loop的身體,你可以附上的聲明和for
環在一個複合語句,就像這樣:
{
double j = 0.0;
for (int i = 0; /*test*/; /*at-end statement*/) {
/* body */
}
}
您也可以解決這種通過使用匿名結構(儘管這只是掩蓋了點,但這恰恰做你想要什麼):
for (struct {int i; double j;} ctx = {0, 0.0}; /*test ctx.i or ctx.j*/; /*at-end*/) {
/*body*/
}
那麼接下來怎麼就沒有問題 的for(int i = 0, j = 0; i <= 30; i ++,j ++) – Marty 2010-11-19 22:33:40
@marty:看我的編輯 – ThiefMaster 2010-11-19 22:34:00