Devlog👩🏻‍💻/Swift

[Swift] 조건문에서 ','와 '&&'의 차이

yujjne 2024. 1. 16. 21:29

TIL 240116

 

코딩테스트 입문 알고리즘 문제를 풀면서 고민했던 부분을 정리해보려 한다.

 

계산 문제를 풀 때 제한 사항

제한 사항
  • 0 ≤ num1 ≤ 100
  • 0 ≤ num2 ≤ 100

 

다음과 같은 제한 사항 조건을 지켜야하는데 , 와 && 모두 사용이 가능해서

이 부분이 굉장히 궁금했다! 이번 기회에 궁금증을 풀어보려 한다. 🧐

 

 

결론적으로

콤마(,)조건(condition)을 이어주는 용도로 쓰는 것이고
&&boolean expression를 결합하여 참이 되게 하는 논리 연산자이다.

 


 

우선 역할을 정리해보면 다음과 같다.

 

1. 콤마(,):

  • 여러 문장(조건)을 한 줄에 나열할 때 사용된다.
  • 주로 변수나 상수를 같은 줄에 선언할 때 쓰인다.
let a = 5, b = 10, c = 15

 

 

2. && : 논리 연산자 (AND): 

  •  논리 AND 연산자는 두 개의 불리언 표현식이 모두 참일 때만 전체 표현식이 참이 된다.
  • 주로 조건문에서 사용된다.
if x > 0 && y > 0

 

 

조건문에서의 사용

if  num1 >= 0 && num1 <= 100 { … } // works
if num1 >= 0, num1 <= 100 { … } // error

 

첫 번째의 경우 '&&' 논리 AND 연산자가 사용되어 두 개의 조건이 동시에 참일 때 블록이 실행된다.
두 번째의 경우는 Swift 에서는 ',' 콤마를 사용하여 여러 조건을 결합하는 문법을 지원하지 않기 때문에 유효하지 않다.


,(Comma) VS &&

// comma
if (num1 >= 0 && num1 <= 100), (num2 >= 0 && num2 <= 100)

// &&
if (num1 >= 0 && num1 <= 100) && (num2 >= 0 && num2 <= 100)

둘 다 기능적으로는 동일하게 동작한다.

두 개의 조건이 동시에 참일 때만 전체 조건이 참이 되도록 처리한다.

 

 


 

▼ 🍎 if Statement

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/statements/

 

(1) condition-list: codition에 Comma를 사용해 조건을 추가한 것이다.

  • condition
  • condition, condition, condition, ...

 

(2) condition: 스위프트 공식 문서에 condiotion은 4가지 항목을 포함한다.

  • expression
  • avilabiliy-condition
  • case-condition
  • optional-binding-condition

-> expression이 condition에 속한다는 것을 알 수 있다.

 

+) Optional Binding의 경우에는 &&와 ,를 구분하여 꼭 콤마로 이어줘야 한다.