본문 바로가기

iOS/Swift

논리 게이트를 Swift로 구현해 보자!

 

AND게이트 (논리곱)

두 개의 입력이 모두 참일때 참을 반환, 하나라도 거짓일 때 거짓을 반환

let sample1 = [true, true, true, true]
let sample2 = [true, true, true, false]
let sample3 = [true, false, false, false]
let sample4 = [false, false, false, false]

func checkAllTrue(in array: [Bool]) -> Bool {
    array.reduce(true) { $0 && $1 }
}

checkAllTrue(in: sample1) // true
checkAllTrue(in: sample2) // false
checkAllTrue(in: sample3) // false
checkAllTrue(in: sample4) // false

 

OR게이트 (논리합)

두 개의 입력이 모두 거짓일때 거짓을 반환, 하나라도 참일 떄 참을 반환

let sample1 = [true, true, true, true]
let sample2 = [true, true, true, false]
let sample3 = [true, false, false, false]
let sample4 = [false, false, false, false]

func checkAllFalse(in array: [Bool]) -> Bool {
    array.reduce(false) { $0 || $1 }
}

checkAllFalse(in: sample1) // true
checkAllFalse(in: sample2) // true
checkAllFalse(in: sample3) // true
checkAllFalse(in: sample4) // false