0

私は、Objective-C に関する Big Nerd Ranch の本を読んでいます。この本では、初期の C の内容について説明しています。私は以前に C で遊んだことがあり、PHP にはかなりの経験があります。

とにかく、私は課題をやっていますが、これは私が思うように機能していません. それはとても簡単です - 99 から始めてループし、0 になるまで 3 を引きます。かなり簡単です。ただし、for ループで 3 を減算しても機能しません。

#include <stdio.h>

int main (int argc, const char * argv[])
{

    int i;
    for(i = 99; i > 0; i-3){
        printf("%d\n", i);
        if(i % 5 == 0) {
            printf("Found one!\n");
        }
    }
    return 0;
}

99 でエンドレス ループが発生しますが、その理由はわかりません。

4

6 に答える 6

4

i-3変数を変更しませんi。次のようなことをします-

 for( i=99; i>0; )
 {
      // ....
     i -= 3;
 }
于 2012-09-27T03:32:19.217 に答える
2

i-=3の代わりになりますi-3

#include <stdio.h>

int main (int argc, const char * argv[])
{

    int i;
    for(i = 99; i > 0; i-=3){
        printf("%d\n", i);
        if(i % 5 == 0) {
            printf("Found one!\n");
        }
    }
    return 0;
}

i-3の値は変更されませんi

i-=3します。

于 2012-09-27T03:33:35.117 に答える
1

ループステートメントはの値を変更しませんi。実行するだけでは変更i - 3はなく、の値が返されるだけです。 ii - 3

使用する:for(i = 99; i > 0; i = i - 3)

于 2012-09-27T03:33:44.113 に答える
1

forループでは、である必要がありますi=i-3

于 2012-09-27T03:35:07.077 に答える
1

から減算3しているだけiですが、に割り当てていませんii = i - 3の代わりに使用しi - 3ます。

for ステートメントを次のように変更します。

for(i = 99; i > 0; i = i - 3) {
  // Write your code here.
}
于 2012-09-27T05:26:20.457 に答える
0

For ループの Last Term は、インクリメントまたはデクリメント操作です。どれもありませi-3ん。i の値を 3 減らしたい場合は、その値i自体を格納する必要があります。

そのためには、次のコードを記述する必要があります:i = i-3または省略形i-=3.

于 2012-09-27T04:21:28.673 に答える