TIL: 조건문

Royce·2025년 3월 9일

Swift 문법

목록 보기
5/63

if 문

  • 특정 조건이 참(true)인지 검사하고, 그 조건이 만족되면 해당 코드 블록을 실행하는 제어문이다
var userPassword = "Royce123"

if userPassword.count >= 8 {        // 참이면 아래의 코드를 실행
	print("비밀번호 길이가 적절합니다.")
}

if-els 문과 if-else if 문

if userPassword.count >= 8 {        // 참과 거짓을 판단하고, 참이면 아래의 코드를 실행
	print("비밀번호 길이가 적절합니다.")
} else {                            // 위에서 거짓이 나왔다면 else 문을 실행
	print("비밀번호가 너무 짧습니다. 최소 8자 이상 입력해주세요.")
}


if userPassword.count > 30 {
    print("비밀번호가 너무 깁니다.")
} else if userPassword.count >= 8 {
    print("비밀번호 길이가 적절합니다.")
} else {
    print("비밀번호가 너무 짧습니다. 최소 8자 이상 입력해주세요.")
}


if userPassword.count > 0 {
    if userPassword.count > 30 {
        print("비밀번호가 너무 깁니다.")
    } else if userPassword.count >= 8 {
        print("비밀번호 길이가 적절합니다.")
    } else {
        print("비밀번호가 너무 짧습니다. 최소 8자 이상 입력해주세요.")
    }
} else {
    print("비밀번호를 입력해주세요.")
}

switch 문

  • 특정 값에 대한 다양한 경우(case)를 처리할 때 사용하는 조건 분기문이다
  • 여러 case를 명확하게 구분할 수 있으며, 각 case마다 해당하는 코드 블록이 실행된다
  • 모든 가능한 경우를 다루어야 하므로, 누락되는 경우가 있다면 반드시 default 구문을 작성해야 한다
  • 각 case에는 실행할 문장이 하나 이상 있어야 하며, 만약 아무런 동작도 하지 않으려면 break를 입력해야 한다
  • Swift에서는 각 case가 자동으로 종료되므로, 일반적인 경우에는 명시적으로 break를 작성할 필요가 없다
  • if 문 보다 한정적인 상황에서 사용한다
// 문자열 비교
let fruit = "Apple"

switch fruit {
case "Banana":
    print("노란색 과일입니다.")
case "Apple":
    print("빨간색 또는 초록색 과일입니다.")
case "Orange":
    print("오렌지색 과일입니다.")
default:
    print("알 수 없는 과일입니다.")
}



// 숫자 범위를 활용한 switch문
let score = 85

switch score {
case 0..<50:      // 0..<50 ~= 85, 내부적으로 패턴 매칭으로 확인
    print("C")
case 50..<80:
    print("B")
case 80...100:
    print("A")
default:
    print("잘못된 점수입니다.")
}

※ 패턴 매칭 연산자

var num = 30

0...50 ~= num  // 여기서 ~= 를 패턴 매칭 연산자라고 하며, 해당 결과가 참(true), 거짓(false)으로 나온다,  true
51...100 ~= num  // false

※ 바인딩

  • 바인딩은 어떤 값(변수나 상수의 값)을 새롭게 이름을 붙여 사용하는 것을 말한다
  • 사용하는 이유:
    - 가독성 향상: 복잡한 표현이나 긴 변수 이름 대신 간단한 이름을 사용하면, 코드를 읽고 이해하기 쉬워진다
    - 재사용성: 한 번 바인딩된 값은 해당 케이스 내에서 계속 사용할 수 있기 때문에, 값을 여러 번 참조할 때 편리하다
    - 코드의 안전성: 조건에 맞는 값이 무엇인지 명확하게 파악할 수 있어, 오류를 줄일 수 있다
var a = 7

let b = a  // 바인딩 (다른 변수 / 상수의 새로운 식별자로 할당한다.)

switch 문에서의 바인딩

let num = 7

switch number {
case let n:        // 여기서 let n은 let n = num과 같은 의미이다.
	print("바인딩된 값은 \(n)입니다.")
default:
	break

switch 문과 where 절

  • where절은 바이딩된 값에 추가 조건을 붙일 때 사용된다(조건을 확인하는 키워드)
  • where절을 사용하는 이유:
    - 추가 조건 부여: 바인딩 후에 그 값이 특정 조건을 만족할 때만 코드를 실행할 수 있도록 해, 더욱 세밀한 분기를 가능하게 한다
    - 명확한 의도 표현: 코드만 봐도 어떠한 상황에서 어떤 코드를 실행하는지 쉽게 이해할 수 있다
  • 이렇게 하면 단순히 값을 바인딩하는 것 이외에도, 그 값이 특정 조건을 만족하는 경우에만 해당 케이스가 실행되도록 할 수 있다
let age = 25

switch age {
case let a where a < 18:
    // age 값이 18 미만이면, 그 값을 a에 바인딩하고 이 케이스가 실행된다.
    print("미성년자입니다. (나이: \(a))")
case let a where a < 65:
    // age 값이 18 이상 65 미만이면, 그 값을 a에 바인딩한다.
    print("성인입니다. (나이: \(a))")
default:
    // 위 조건에 해당되지 않는 경우 실행된다.
    print("노년입니다. (나이: \(age))")
}
profile
iOS 개발자 지망생

0개의 댓글