为啥这个函数在 Swift 中用于确定整数的输入是奇数还是偶数?

Posted

技术标签:

【中文标题】为啥这个函数在 Swift 中用于确定整数的输入是奇数还是偶数?【英文标题】:Why does this function work to determined wether or not an input of an Integer is Odd or Even in Swift?为什么这个函数在 Swift 中用于确定整数的输入是奇数还是偶数? 【发布时间】:2022-01-22 12:04:58 【问题描述】:
func isOdd(n: Int) -> Bool 
    if n % 2 == 1 
        return true
     else 
        return false
    

所以这个功能基本上让我感到困惑。假设我调用了函数并输入 9

isOdd(in:9)

我知道 9 是一个奇数,但代码是如何工作的。如果我计算代码所暗示的 n(9)/2,它等于 4.5。这个结果被检查为 2 个等于 1 的符号所暗示的结果。4.5 不等于 1 那么为什么它返回 True。

【问题讨论】:

请注意这里有 %,而不是 / % 是模运算符,而不是除法。如果这仍然没有意义,您需要查找它。 你应该使用 BinaryInteger isMultiple(of:) 方法。更容易理解代码的作用!n.isMultiple(of: 2) 或者如果您更喜欢n.isMultiple(of: 2) == false 【参考方案1】:

模除法,当第一个 int 除以第二个 int 时给出提示 和它returns an int。所以n % 2 返回01 作为int 提醒。 这就是您的功能有效的原因。您可以将功能简化为:

func isOdd(n: Int) -> Bool  n % 2 != 0 

【讨论】:

== 1!= 0 的转变实际上改变了语义,但在一个好的方面:它现在可以正确处理负数。

以上是关于为啥这个函数在 Swift 中用于确定整数的输入是奇数还是偶数?的主要内容,如果未能解决你的问题,请参考以下文章

MSSQL 为啥这个函数是不确定的

为啥我不能在 Swift 的 reduce 中正确划分整数?

按位数位置提取整数Swift

为啥函数调用需要 Swift 中的参数名称?

函数在 Swift 中是值类型还是引用类型?为啥?

为啥我的线程函数中的局部变量会被其他线程中断?