2016-11-23 4 views
0

Javaでwhileループを作成する方法があるかどうかを尋ねたいのですが、ループ内にメインカウンタもあります。カウンタ変数も破棄されます。Java:whileループwith self-contained counter

for (int i = 0; i < 10; i++) { 
    //do something 
} 

iは同様に破壊される変数は、このようにクリーンコードを保つ:我々はこのループを終了例えば

、。

しかし、whileループでは、ループ自体の外側にカウンタ変数を作成する必要があります。したがって、ループが終了すると、カウンター変数は依然としてメインプログラムに存在します。

int counter = 0; 
while (counter < 10) { 
    counter++; 
} 
counter--; //we can still manipulate the counter variable here 

私がお聞きしたいのは次のとおりです。whileループ自体の内部カウンタ変数を配置するいくつかの方法がある、など:

while ((int i = 0) < 10) { 
    counter++; 
} 
+0

カウンターを「破壊する」ことはなぜ重要ですか?これはどのように「きれいな」ものですか? –

+5

これはforループです。どうしたの? –

+0

@ScottHunter後でカウンタが誤って変更され、バグが発生する可能性があります。また、whileループやカウンタが大量にある場合は、名前空間がかなり乱雑になります。しかし、たいてい私はそれがきれいであることを望んでいます。 –

答えて

3

あなたがint counterwhile周り{}を置くことができますループ。

{ 
    int counter = 0; 
    while (counter < 10) { 
    counter++; 
    } 
} 
// counter is inaccessible here 

しかし、これはforループを使用するよりもずっと面倒です。

+0

ありがとう、それが可能であることを知っていいです。そして、それは単なるforループよりもずっと面倒であると確信しています。なぜなら、以前はそれが使われているのを見ていないのかもしれません。 –

0

私が知る限り、あなたは "外部"カウンタを使用する必要があります。