为啥这个函数在 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
返回0
或1
作为int
提醒。
这就是您的功能有效的原因。您可以将功能简化为:
func isOdd(n: Int) -> Bool n % 2 != 0
【讨论】:
从== 1
到!= 0
的转变实际上改变了语义,但在一个好的方面:它现在可以正确处理负数。以上是关于为啥这个函数在 Swift 中用于确定整数的输入是奇数还是偶数?的主要内容,如果未能解决你的问题,请参考以下文章