0

while(1) が無限ループであることは知っていますが、while(i) とは正確にはどういう意味ですか?

int i=5;
...
while(i)
{
i=i-1;
printf("%d\n", i);
}

最終的に数字の「0」が出力されます。私が理解していないのは、なぜこれが無限ループではなく、なぜ 0 で停止するのかということです。

4

4 に答える 4

6

0と評価されるため停止しfalseます。

于 2013-10-11T00:53:05.283 に答える
1

ゼロは False を意味し、ゼロ以外の値 (浮動小数点数も含む) は True を意味します。

このことを考慮:

float i=5.5;
...
while(i)
{
  i=i-1.5;
  printf("%d\n", i);
}

これは、整数でなくても機能します。したがって、while(i) は while(i!=0) を意味します。

于 2013-10-11T01:12:43.190 に答える
0

暗黙のうちに を意味しwhile (i!=0)ます。したがって、基本的にあなたのコードは次と同等です

int i=5;
...
while(i!=0)
{
i=i-1;
printf("%d\n", i);
}

これはその動作を説明しています。

于 2013-10-11T00:54:51.313 に答える