2016-11-23 10 views
-2

ループ内にreturn文があることがわかりました。とにかく誰もが助けてくれてありがとう。Javaでforループにインクリメント式がないとどうなりますか?

私は増分/減算式を持たないJavaのforループを見つけました。実際、私のIDEは、式がデッドコードであると私に伝えています。私はそうのようなi--を追加しようとするたび

for(int i = 5; i!=0;) 
    //Do something... 

その後:インクリメント/デクリメント式なし

ループは

for(int i = 5; i!=0; i--) 

私のIDEは、i--が私を混乱させるデッドコード、であることを私に伝えます私は私がどのように変わるのか分からないので。だから私の質問は、どのようにこのループはJavaで動作するのですか?これは無限ループですか? JVMが自身の上でiを減らしていますか?等...

最小例:

for(int i=10; i!=0;i--) 
    //Do something... 

コンプリート:

public void methodName(int number){ 
    for(int i = number; i!=0; i--) 
    //Do something... 
+1

[mcve]を投稿できますか? 'i - 'を取り除いて一つの行だけが間違っていると判断します。 'i'がループ本体のどこかで変更されない限り、無限ループが発生します。 –

+0

@JohnKugelmanはい。 1つの瞬間... –

+0

無限ループが必要な場合は、 'while(true)'などを使用してください。 –

答えて

0

それはあなたがする必要があります私の5

よりも低いであるすべてのために働く必要があるはずですforループを次のように記述します。

for(int i = 5; i>=0; i--) 

そして、これは無限ループになります。

for (int i = 5; i != 0;) { 
    System.out.println(i); 
} // , 

ウィル出力整数:

for(int i = 5; i!=0;){ 
    System.out.println(i); 
} 

それが0

+0

は、私はそれがうまくいくことを知っているが、私は、インクリメント/デクリメント式のないループがどうなるのか、具体的知りたいと思いました。また、iが0より小さい場合はループを無限に実行する必要があり、 '!='はそれを行う良い方法のようです。 –

+0

'i!= 0'は何も問題ありません。 –

3

短い答えに等しくない全てのiのために働いていきますので、 5永遠に。

それは相当だ:iは常に 5とiあるので、それは永遠に5を出力

int i = 5; 
while (i != 0) { 
    System.out.println(i); 
} 

常にループを脱出するためには、0とは異なるで、明示的に更新する必要があります0の値を保持するまでiの値を入力します。

関連する問題