2016-03-31 11 views
1

Also wenn ich eine Methode, die Werte zurückgeben soll, macht es nicht. Ich weiß, ich könnte es leicht mit void tun, aber kann jemand erklären, warum die Schleife den Wert hier nicht zurückgibt, ist ein einfaches Beispiel.Gibt keinen Wert aus Schleife

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

     return x; 
    } 
} 

Ich versuchte es auch durch die weiter Teil bewegt und es nur mit zwei Inkrementieren aber es würde immer noch sagen, nicht alle Wege den Wert zurück.

Antwort

5

es würde immer noch sagen, nicht alle Wege geben den Wert

Er sagt, dass da was ist, wenn y<0 geschehen? Die Schleife wird nicht ausgeführt und es wird keine return-Anweisung ausgeführt.

Auch in Ihrem Fall, wenn y>=0 wird sofort (0) zurück, ist das, was Sie wollen?

1

Ich glaube, Sie verstehen das Problem leicht falsch.

Das Problem ist nicht, dass die Schleife nicht beendet, es ist, dass die Schleife nie eingegeben wird.

Wie Giorgi sagte, stellen Sie sich einen Wert von Y vor, der bereits den Ausgangsfall erfüllt (x < = y) - in diesem Fall wird die for-Schleife nie eingegeben.

+0

Sorry, ich habe das komplett vergessen. Trotzdem danke! –

Verwandte Themen