2

CGRectの実装では、これを試みます。

BOOL didStartPressing = NO;
if ( didStartPressing) {int nmax=5;}
else{int nmax=500;}

for (int n=1; n<nmax; n=n+1){ *... working code that draws some circles ....*     }

これにより、上記の最初の部分で「未使用の変数nmax」に関する黄色の警告が表示され、「宣言されていない変数nmaxの使用」に関する赤色の警告が表示されます。forループの場合。ただし、上記の最初の3行を単純に置き換える場合

int nmax=500; 

CGRectで描いた素敵な絵が撮れます。

私は学習曲線の厳しい壁に完全に立ち向かったので、助けてくれてありがとう。

4

2 に答える 2

3

の範囲nmaxと の後の中括弧に限定しましifelse。したがって、その名前の 2 つの変数があり、どちらもforループには表示されません。if解決するには、宣言を外側のスコープに移動し、 /elseスコープ内の変数に割り当てるだけです。

int nmax = 0;   // the = 0 is optional in this case because all code
                // paths assign a value to nmax
BOOL didStartPressing = NO;
if (didStartPressing) {
    nmax=5;
} else {
    nmax=500;
}

for (int n=1; n<nmax; n=n+1) {
    /*... working code that draws some circles ....*/
}
于 2012-09-23T22:39:26.167 に答える
1

これはC言語のことです。中かっこのペア内で宣言された変数のスコープは、中かっこ内のセクションのみです。つまり、2 つの異なる変数があり、どちらも呼び出されnmax、それぞれが if/else ステートメントのそのセクションに限定されています。

あなたはそれを動作させることができます:

int nmax = 500;
if ( didStartPressing) {
    nmax=5;
}

詳細については、C プログラミングに関する本を参照してください。

于 2012-09-23T22:39:04.753 に答える