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

时间:2017-01-22 04:15:06

标签: 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)

预期结果:

result

3 个答案:

答案 0 :(得分:7)

你需要使用模运算符if(linkView==null){ LayoutInflater inflater=getLayoutInflater(); linkView=inflater.inflate(R.layout.cardview_link, null); ogTitle = (TextView) linkView.findViewById(R.id.title_link); ogDecription = (TextView) linkView.findViewById(R.id.description_link); ogUrl = (TextView) linkView.findViewById(R. id.url_link); ogImage = (ImageView) linkView.findViewById(R.id.thumbnail_link); view.addView(linkView); } ogTitle.setText(strings.get(0)); Glide.with(getApplicationContext()).load(strings.get(1)).into(ogImage); ogDecription.setText(strings.get(2)); ogUrl.setText(strings.get(3)); super.onPostExecute(strings);} 检查你的整数除以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 的数组来实现,如下所示:

Integer

用法:

extension Array where Element: Integer {
    var allOdds: Bool {
        return !contains{ !$0.isOdd }
    }
}

答案 1 :(得分:3)

您的原始代码已关闭,但在检查整个阵列之前,您不想返回true

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

简单for in循环优于mapreduce的优势在于,只要找到第一个偶数而不是遍历整个数组,就可以返回。

答案 2 :(得分:3)

很短:

func isOdd(_ array: [Int]) -> Bool {
    return  !array.contains {($0 % 2) == 0 }
}