The Swift Programming Language 도서 내용을 토대로 번역 및 요약된 내용입니다.
조건부를 위한 if
, switch
반복문 loop를 위한 for in
, while
, repeat-while
조건부나 반복문 근처의 괄호는 생략이 가능합니다.
if 문의 조건문은 항상 Boolean
값으로 표현되어야만 합니다.
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 { // 조건문은 항상 Boolean 값
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore)
// Prints "11"
optional
변수는 value 또는 nil 값을 지닐 수 있는 변수
이며, type 뒤에 ? 표시를 통해 생성 가능
if let
을 통해 optional 변수를 unwrapped value
로 할당할 수 있으며, block 내에서 사용이 가능
var optionalString: String? = "Hello" // String 또는 nil 값을 지닐 수 있는 변수 생성
print(optionalString == nil)
// Prints "false"
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName { // unwrapped value 인 name 으로 할당
greeting = "Hello, \(name)"
}
optional 변수 뒤에 ??
표시 후 기본값을 명시하여 unwrapping 가능
let nickname: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickname ?? fullName)" // nickname 값의 unwrapping
switch
를 통해 어느 type 이든 equality 비교
가 가능
let 변수명을 통해 case 문에서 상수로 할당하여 값 사용이 가능
case 문이 실행된 후 switch 문을 탈출하게 되므로, case 문의 코드 마지막 부분에 break 를 명시하지 않아도 된다.
let vegetable = "red pepper"
switch vegetable { // 어느 type 이든 가능
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"): // x 변수로 할당되어 사용 가능
print("Is it a spicy \(x)?")
default:
print("Everything tastes good in soup.")
}
// Prints "Is it a spicy red pepper?
for in
형식을 통해 dictionary
변수의 key, value
값들을 순환할 수 있다. 다만, dictionary 변수는 unordered collection
이므로 임의의 순서로 반환된다.
let interestingNumbers = [
"Prime": [2, 3, 5, 7, 11, 13],
"Fibonacci": [1, 1, 2, 3, 5, 8],
"Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (_, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
print(largest)
// Prints "25"
while
문을 사용하여 조건이 변경될 때 까지 반복
하여 block 의 code(loop)를 실행할 수 있다.
repeat while
문을 사용하여 조건문을 block 뒤에 위치
할 수 있으며, loop 가 적어도 한번 실행되도록 할 수 있다.
var n = 2
while n < 100 { // 조건문 loop 전에 명시
n *= 2
}
print(n)
// Prints "128"
var m = 2
repeat {
m *= 2
} while m < 100 // 조건문 loop 후에 명시
print(m)
// Prints "128"
..<
또는 ...
식을 통해 범위를 만들 수 있으며, loop에서 index 값을 사용할 수 있다.
..<
의 경우 우측 범위숫자는 미포함되며, ...
의 경우 우측 범위숫가가 포함된다.
var total = 0
for i in 0..<4 {
total += i
}
print(total)
// Prints "6"
func hasSuffix(_ suffix: String) -> Bool
문자열의 마지막 부분의 일치여부 반환 함수
Documentation / Swift / String / hasSuffix(_:)
다음에서 발췌
docs.swift.org
The Swift Programming Language (Swift 5.5) Apple Inc.
이 자료는 저작권에 의해 보호됩니다.