如果所有数字都是奇数,如何编写一个带有Ints数组的函数并返回true(Bool)

-5 ios swift

我想写swift并想要这样的结果

func isOdd(getArray: [Int]) -> Bool{
    for i in getArray{
        if getArray[i] % 2 == 0{
            return true
        }else{
            return false
        }
    }
}

let test1 = [2,4,6,8]
isOdd(test1)
Run Code Online (Sandbox Code Playgroud)

预期结果:

结果

Leo*_*bus 7

您需要使用模运算符检查您的整数除以2的余数是否不等于零%:

extension Integer {
    var isOdd: Bool { return self % 2 != 0 }
}

0.isOdd    // false
1.isOdd    // true
2.isOdd    // false
3.isOdd    // true
4.isOdd    // false
Run Code Online (Sandbox Code Playgroud)

然后你必须检查你的数组是否包含偶数元素(不是奇数).您可以通过扩展元素所在的数组来实现Integer,如下所示:

extension Array where Element: Integer {
    var allOdds: Bool {
        return !contains{ !$0.isOdd }
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

let test1 = [2,4,6,8]

if test1.allOdds {
    print(true)
} else {
    print(false)     // false
}    
Run Code Online (Sandbox Code Playgroud)