2016-11-04 82 views
-8

所以這是一個學校作業(我是一個初學者,本週從C#開始)。 我們有一個存儲函數的類。 這個功能應該檢查一個人是否可以轉盤傳送。 變量: 布爾hasHeartCondition INT年齡 INT釐米並非所有的代碼路徑都返回一個值。在C#

public bool CanJoyride(int age, int cm, bool hasHeartCondition) 
    { 
     if (hasHeartCondition == true) 
     { 
      return false; 
     } 
     else if (hasHeartCondition == false) 
     { 
      if (age >= 18) 
      { 
       if (cm >= 130 && cm <= 210) 
       { 
        return true; 
       } 

      } 
      else if (age >= 12) 
      { 
       if (cm >= 150 && cm <= 210) 
       { 
        return true; 
       } 

      } 
      else 
      { 
       return false; 
      } 
     } 
     else 
     { 
      return false; 
     } 
    } 

我正在爲這個新問題的原因是因爲我真的不能跟隨代碼在這樣的問題。因爲我真的很陌生。

+0

只用'return false'取代最後一個'else' – UnholySheep

+1

提示:當你在這裏發表問題時,不要說這是一個學校作業 – meJustAndrew

+0

如果'age> = 18'並且高度不落在那個範圍?還有 - 如果「年齡> = 12」但身高不在範圍內? –

回答

4

你的問題是你不會在你的方法結束時返回任何值。你可以像這樣重新編寫你的方法。這是更容易理解,並應填寫您的要求。

public bool CanJoyride(int age, int cm, bool hasHeartCondition) 
{ 
    if (hasHeartCondition)   
     return false; 


    if(age >= 18 && cm >= 130 && cm <= 210) 
     return true; 


    if (age >= 12 && cm >= 150 && cm <= 210) 
     return true; 

    return false;   
} 

您應該避免以箭頭方式編寫代碼。這意味着要避免嵌套,因爲代碼變得難以閱讀且難以遵循。

相關問題