본문 바로가기

iOS (스파르타)

Swift if문에서 '&&' 와 ' , ' 의 차이

Swift의 if문에서 '&&' 와 ' , '를 사용하는 것은 조건을 결합하는 두 가지 다른 방법이다.

두 방식은 각각의 조건이 참인지 평가하는데 사용되지만, ' , '를 사용할 때는 추가적인 문맥이 필요하다.

 

'&&' (논리 AND 연산자)

두 조건이 모두 참인지 확인한다.

왼쪽에서 오른쪽으로 평가하며, 첫 번째 조건이 거짓이면 두 번째 조건은 평가되지 않는다.

let a = true
let b = false

if a && b {
    print("Both are true")
} else {
    print("One or both are false")  // 출력: One or both are false
}

 

' , ' (쉼표)

쉼표는 조건을 나열할 때 사용되며, 각 조건이 참인지 평가한다. 쉼표를 사용할 때는 각 조건이 개별적으로 평가되고, 참일 경우에만 다음 조건이 평가된다.

쉼표는 일반적으로 옵셔널 바인딩이나 where 절 등에서 추가적인 조건을 걸 때 사용된다.

let x: Int? = 5
let y: Int? = 10

if let a = x, let b = y, a < b {
    print("a is less than b")  // 출력: a is less than b
} else {
    print("Condition failed")
}

 

차이점

 

1. 사용 위치:

  • '&&'는 기본적으로 조건을 결합하는 데 사용된다.
  • ' , '는 옵셔널 바인딩과 같이 추가적인 조건을 걸 때 유용하다.

2. 단락 평가:

  • '&&'는 첫 번째 조건이 거짓이면 두 번째 조건을 평가하지 않는다.
  • ' , '는 각 조건을 순서대로 평가한다. 이전 조건이 거짓이면 나머지 조건을 평가하지 않는다.

예제

let a = 5
let b = 10
let c = 15

// Using &&
if a < b && b < c {
    print("a is less than b and b is less than c")  // 출력: a is less than b and b is less than c
} else {
    print("Condition failed")
}

// Using ,
if a < b, b < c {
    print("a is less than b and b is less than c")  // 출력: a is less than b and b is less than c
} else {
    print("Condition failed")
}

'&&'와 ' , ' 는 조건을 결합하는 데 있어 비슷하게 동작한다. 그러나 ' , '는 옵셔널 바인딩이나 여러 조건을 나열할 때 더 자주 사용된다.

 

  • '&&' : 두 조건을 논리적으로 AND 연산자로 결합한다. 단락 평가가 적용된다.
  • ' , '  : 조건을 나열하여 순차적으로 평가한다. 옵셔널 바인딩이나 복잡한 조건 평가에 유용하다. 각 조건이 개별적으로 평가된다.
옵셔널 바인딩에서 쉼표( , )는 여러 옵셔널 값을 동시에 바인딩할 때 유용하다. 쉼표를 사용하면 각 옵셔널 값이 nil 이 아닌 경우에만 블록 내의 코드를 실행할 수 있다.

 

 

 

 

 

예진님이 설명이 잘 되어있다고 찾아주신 블로그 첨부!

https://soojin.ro/blog/swift-comma-vs-and-operator

 

스위프트의 콤마와 &&의 차이: condition과 expression의 구분 · Soojin Ro

이번 주 인터넷을 돌아다니다가 Swift의 if문에서 ‘,’와 ‘&&’의 차이라는 재밌는 글을 발견했다. 재밌었던 이유는 명료한 답변이 곧바로 떠오르지 않았기 때문이다. 가끔 이렇게 평소에는 별

soojin.ro