본문 바로가기

비공개/공식문서 간단정리

[Swift] 논리 연산자

 

 

논리 연산자는 Bool 로직 값을 true 와 false 로 수정하거나 결합한다.

Swift는 3개의 표준 논리 연산자를 제공한다.

 

논리적 NOT (!a)

논리적 AND (a && b)

논리적 OR (a || b)

 

 

논리적 NOT 연산자

논리적 NOT 연산자(!a)는 Bool 값을 true -> false로, false->true 와 같이 반대로 만든다.

이것은 "a가 아니다" 라는식으로 읽을 수 있다.

let isEdit = false

if !isEdit { // isEdit가 아니다
	print("수정모드 입니다.")
}

// 수정모드 입니다.

 

 


 

논리적 AND 연산자

논리적 AND 연산자(a && b) 는 두 값이 모두 true 여야 true를 표현하는 논리적 표현식을 만든다.

두 값 중 하나라도 false 이면 결과는 false 이다.

첫번째 값이 false 이면 이미 결과가 false 이기때문에 두번째 값은 살펴보지 않는다.

 

let enteredDoorCode = true
let passedRetinaScan = false

if enteredDoorCode && passedRetinaScan { // passedRetinaScan가 false 이기때문에 false 이다.
	print("어서오세요!")
} else {
	print("접근이 금지되었습니다.")
}
// 접근이 금지되었습니다.

 


 

논리적 OR 연산자

논리적 OR 연산자(a || b)는 두 값 중 하나라도 true 이면 표현식이 true 가 된다.

첫번째 값이 true 이면 이미 결과가 true 이기때문에 두번째 값은 살펴보지 않는다.

 

let hasDoorKey = false
let knowsPassword = true

if hasDoorKey || knowsPassword {
	print("어서오세요!")
} else {
	print("접근이 금지되었습니다.")
}

// 어서오세요!

 


 

논리적 연산자 결합

 

긴 복합 표현식을 생성하귀 위해 여러개의 논리적 연산자를 결합 할 수 있다.

 

let enteredDoorCode = true
let passedRetinaScan = false
let hasDoorKey = false
let knowsPassword = true

// 올바른 출입문 코드(enteredDoorCode)를 입력하고(&&) 
// 망막 스캔(passedRetinaScan)을 통과했거나(||) 
// 키(hasDoorKey)를 가지고 있거나(||) 
// 긴급 비밀번호(knowsPassword)를 알고 있는 경우 접근 허락
if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
	// 긴급 비밀번호를 알고 있으므로 true 이다.
    print("어서오세요!")
} else {
    print("접근이 금지되었습니다.")
}
// Prints "어서오세요!"

 


 

명시적 소괄호

 

복합 표현식을 읽기 쉽게 하기 위해 소괄호( )를 포함하는 것은 때때로 유용하다.

소괄호는 감싼 값을 전체 논리에서 별도의 부분으로 고려되도록 해준다.

 

if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
    print("어서오세요!")
} else {
    print("접근이 금지되었습니다.")
}

 

 

 

 

'비공개 > 공식문서 간단정리' 카테고리의 다른 글

[Swift] 배열 (Arrays)  (0) 2023.12.13
[Swift] 범위 연산자  (0) 2023.12.13
[Swift] Nil-결합 연산자  (0) 2023.12.13
[Swift] 삼항 조건 연산자  (0) 2023.12.13
[Swift] 복합 대입 연산자  (0) 2023.12.13