2017-07-06 31 views
1

我正在學習C#。在下面的例子中,我相信我有正確的代碼,但是在某個地方必須有一個或兩個(也許更多)的錯誤。請參閱下面的代碼:程序流程C#

public static string ReturnAgeGroup(int age) 
    { 
     if (age >= 65) 
     { 
      return "senior citizen"; 
     } 
     if (age < 21) 
     { 
      return "minor"; 
     } 
     if (age >= 21 & age < 65) 
     { 
      return "adult"; 
     } 
    } 

有一個下RetrunAgeGroup,它說紅色波浪線並非所有的代碼路徑返回一個值當我在它懸停。爲什麼是這樣?有關年齡的所有可能性都包含在條件中。

是否還有其他我沒有識別的錯誤?

問候

+1

使用'else if',就像形式一樣。分支機構旨在相互排斥;你的控制流程應該反映這一事實。 –

回答

0

IntellySence不能肯定,你真的變100%傳遞到國際單項體育聯合會之一。 將最後的if更換爲else

public static string ReturnAgeGroup(int age) 
{ 
    if (age >= 65) 
     return "senior citizen"; 
    if (age < 21) 
     return "minor"; 
    else 
     return "adult"; 
} 
1

你可以這樣做。

public static string ReturnAgeGroup(int age) 
{ 
    if (age >= 65) 
    { 
     return "senior citizen"; 
    } 
    if (age < 21) 
    { 
     return "minor"; 
    } 

    return "adult"; 
} 
0

卸下並見好就收return "adult"

編譯器在驗證代碼路徑時並不考慮條件。這就像路牌。如果它說,你可以向左或向右,那麼你可以。編譯器不關心,如果在轉彎之後有大量的垃圾,道路是不可及的。類似這裏。有三種情況,可能會也可能不會。由於在最後一個之後沒有更多的代碼,並且你的函數在任何情況下都會返回值,你會得到這個警告。