代码如果数字大于x,则使y =数量

时间:2018-06-25 21:43:27

标签: swift

我正在尝试制作一个可计算年收入和401(k)贡献的iOS应用。我无法弄清楚该函数的编码方式,因此尽管员工收入占收入的百分比,但该函数将401(k)贡献限制为18500。我知道这是超级基础,但是我已经在它上工作了几个小时,而且似乎无法使它正常工作。任何帮助表示赞赏。

func your401 () -> int {
    if employee401kContribution < 18500 {
        return employee401kContribution
    }
    else do {return = 18500 }
}

2 个答案:

答案 0 :(得分:1)

您真的很亲密!您只有几个小问题:

  1. 您不要在return之后加上等号。这是一种特殊形式,不使用等号。只需return 18500(或者您甚至可以将其样式设置为return 18_500)。
  2. 您不要将do放在else之后。只是if { ... } else { ... }
  3. 返回类型为int,但您要查找的数据类型为Int。类型和变量名之类的标识符区分大小写。
  4. your401不是描述性名称。您应该命名此函数,以便更清楚地确切传达其功能。

如果进行修复,这是您得到的:

func nameMeBetter() -> Int {
   if employee401kContribution < 18_500 {
       return employee401kContribution
   } else {
       return 18_500
   }
}

更加简单,您可以使用Swift.min(_:_:)来实现此目的:

func nameMeBetter() -> Int {
   return min(employee401kContribution, 18_500)
}

答案 1 :(得分:1)

您可以通过几种方式完成此操作

// Closest to your original code
func your401() -> Int {
    if employee401kContribution < 18500 {
        return employee401kContribution
    } else {
        return 18500
    }
}

// A shorter version using the conditional ternary operator
// return (condition) ? (value if true) : (value if false)
func your401() -> Int {
    return employee401kContribution < 18500 ? employee401kContribution : 18500
}

// Most compact of all. This stays close to the English description
// "the employee's 401k contribution or 18500, whichever is less"
func your401() -> Int {
    return min(employee401kContribution, 18500)
}