我试图如何在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