2011-10-27 5 views
0

既に定義されているイテレータを使用してループを作成したいと思います。既に定義されているイテレータを持つC#forループ

現時点では私は他の誰かが後で私++を削除する可能性があるため、これは醜いです

int i; 
while (i<10) 
{ 
    Console.Writeline(i); 
    i++; 
} 

を使用しています。大きなコードブロックでwhileステートメントから区切られている場合は、それが何のために明確ではありません。

私が本当に欲しいと、これは何が起こっていることが明らかになり、それが有効なC#ではありません

int i; 
for (i<10; i++) 
{ 
    Console.Writeline(i); 
} 

のようなものです。

私がこれまでに作ってみた最高の

int i; 
for (int z; i<10; i++) 
{ 
    Console.Writeline(i); 
} 

あるしかし、それは醜いです。 C#は私に優雅なやり方を教えてくれますか?

答えて

9

さて、あなたはは、ループの最初の部分の内側に何かを持っているを持っていない:

for (; i < 10; i++) 
{ 
    Console.WriteLine(i); 
} 

は、あなたが探しているものということですか?個人的には、私は通常を試してみますが、この種の状況を避けるためには、私は新しい変数がなくてもループを望むのは珍しいことです。

+1

余分なミニマリズムのために、(while(true)の代わりに)無限ループのために 'for(;;)'を試してください。 –

+0

パーフェクト、ありがとう。私は他の人の変数を反復しているので、ここでそれを作成することはできません。 –

3

だけ「のために」の空の最初の部分を使用します。

int i; 
for (; i<10; i++) 
{ 
    Console.Writeline(i); 
} 
0

ます。また、このようなループの最初の部分で自分自身に変数を割り当てることができます。

int i; 
for (i=i; i<10; i++) 
{ 
    Console.Writeline(i); 
} 

私が見つけますループの最初の部分を空白にしておくよりも少し明確ですが、Visual Studioでは「同じ変数に代入が行われていますが、別の変数に代入することを意味していますか」という警告が表示されます。

関連する問題