2012-02-15 12 views
1
int i; 
i=0; 
for (i=0;i>2;i++) 
    { 
    repeat((3),"|",var); 
    printf("\n");   
    } 

何らかの理由で「for」に到達し、スキップします。私はint iをforの外に置こうとし、forの外側でそれを初期化し、デバッグではゼロにしました。私が必要とすることは、このコードを2回ループすることだけです。Cでこのループに問題がありますか?

+0

あなたは 'I = 0'を設定することができ、あなたがループを持つことができるi>を2' 'ながら走り続けるが、あなた両方を行うことはできず、ループブロックが処理されることを期待する。 –

答えて

5

変更:

for (i=0;i>2;i++) 

へ:

for (i=0;i<2;i++) 

それはそう、それはループに入ることはありません失敗します> 2だ場合は、テストしています。

+0

ありがとう、私は==で持っていたし、それは動作していないので、私は>に変更しました – StephanM

1
for (i=0;i>2;i++) 

あなたがそうでなければ、あなたのforループ本体が実行されることはありません

for (i=0;i<2;i++) 

をしたいです。

2

それはので、あなたのループ条件は次のとおりです。i > 2

条件i > 2

が、それはそう

1

をホープ(FALSE)0と評価されますので、それは、2よりも大きくない変数i forループを分解できます。以下のための3つの部分があります(piece1は、piece2; piece3)

piece1 =変数の設定、これは条件がtrueの間、ループ

に継続=ループの最初のランニング

piece2で一度起こります

peice3 =各繰り返しの最後にこのアクションを実行します。

私が2以上である一方、だからあなたのループは、今の状態は決してので、この時点で、あなたのコンパイラはすでに、出てスキップした...(あなたはそれがないと述べている)、I = 0最初のセットを言います本当だ。私はあなたが私を更新している唯一の場所がループ内にあるため、真なることはありませんこれは、2に等しくしながら、それはそれのループを行いますので、このための

は、テストは==、どちらか動作しません。中間の条件は継続条件であるブレーク条件ではありません。

-1

ためにforループを変更しますは、(i = 0;私< 2、iは++)

+0

これは本当に他の答えは言及しなかった、あなたは思いませんか? – Lundin

関連する問題