2016-03-31 18 views
1

値を返すはずのメソッドを作成した場合、それはできません。私は簡単にvoidで行うことができますが、ループが値を返さない理由を誰もが簡単な例として説明できます。 ループから値を返しません

public static int EvenNumberGenerator(int y) 
{ 
    for (int x = 0; x <= y; x++) 
    { 
     if (x % 2 == 1) 
     { 
      continue; 
     } 

     return x; 
    } 
} 

は、私はまた、 一部を継続移動し、ちょうど2つでそれをインクリメントすることにより、それを試してみましたが、それはまだすべてのパスが値を返さないと言うでしょう。

答えて

5

それはまだすべてのパスが値を返さないと言うだろうが

それは何がy<0場合に発生しますので、と言っていますか?ループは実行されず、returnステートメントは実行されません。

また、y>=0の場合はすぐに(0)を返しますが、それはあなたが望むものですか?

1

私はこの問題を少し誤解していると思います。

ループが終了しないという問題ではなく、ループが入力されないということです。

Giorgiによると、すでに終了ケース(x < = y)を満たしているYの値を想像してください。その場合、forループは決して入力されません。

+0

申し訳ありません申し訳ありませんが、私はそれについて完全に忘れました。ありがとう、結構です! –

関連する問題