我在互联网上搜索了解这意味着什么:
while(i++)
我在这看到了很多相似的代码。 增量返回到while循环的条件是什么?
答案 0 :(得分:1)
构造i++
做了两件事。它计算变量i
的当前值,然后将存储值增加1。因此,如果i
等于-1
,那么在while(i++)
的情况下,i++
计算为-1
,其中(非零)为真,递增i
到0
,执行循环体,在下一次迭代中,i++
计算为零并将i
递增到1
,并且为零false,while
完成并执行超出它。
答案 1 :(得分:1)
增量不会向while循环条件返回任何内容。变量i
的值首先被检查为true a然后递增。
True表示任何不等于0
的内容。
答案 2 :(得分:1)
在while( i++ )
中,i
的值被评估为while
的条件,之后i
增加1
。这在 C 中称为后增量,具有副作用。
实施例的
i = 1;
while( i++ ) // same as while( i ),
// side-effect is `i` incremented by 1 after this
// now i is 2
有关增量运算符的更多信息,请参阅this question。
答案 3 :(得分:1)
你可以试试这段代码:
#include"stdio.h"
int main()
{
int i = -3;
while(i++)
printf("NUM I IS: %d\n",i);
i = -3;
printf("\n");
while(++i)
printf("NUM I IS: %d\n",i);
return 0;
}
结果是:
NUM I IS: -2
NUM I IS: -1
NUM I IS: 0
NUM I IS: -2
NUM I IS: -1
请参阅,第二个循环仅运行两次,但第一个循环运行第3个。
所以
while(i++)
==>
while(i)
{
i = i +1;
...
}
和
while(++i)
==>
while( i = i+1)
答案 4 :(得分:0)
WHILE
循环只能理解两件事,即TRUE
和FALSE
。
TRUE
= 0以外的任何值
FALSE
= 0
如果条件为真,则循环将以其他方式运行,它将被终止。
在你的情况下,你说WHILE(i++)
这意味着你将继续增加i&的价值。循环将继续,直到你得到0
示例:
i= -2;
WHILE(i++)
{
condition
}
在第一个循环中,i的值将为-2
,这是真的。条件将被执行&然后我会增加。因此,i的值现在变为-2+1 = -1
在第二个循环中,i的值将为-1
,这是真的。条件将被执行&然后我会增加。因此,i的值现在变为-1+1 = 0
在第三个循环中,i的值将为0
,这是假的。因此循环终止。