이번 편의 목표: 일수에 따라 연체료를 나누고, 책 목록을 처음부터 끝까지 출력합니다.

조건은 if와 switch입니다. switch는 적힌 경우가 값의 가능성을 모두 덮어야 컴파일됩니다.

Swift
let lateDays = 4
let fee: Int
if lateDays <= 0 {
    fee = 0
} else if lateDays <= 3 {
    fee = lateDays * 100
} else {
    fee = lateDays * 150
}

let menu = 1
switch menu {
case 1:
    print("목록")
case 2:
    print("등록")
default:
    print("없는 메뉴")
}
print(fee)

4일은 3일을 넘으므로 하루 150원으로 계산해 600입니다. menu가 1이면 목록이 출력됩니다. default가 없으면 Int의 나머지 값을 처리할 가지가 없어 컴파일이 멈춥니다.

목록은 배열입니다. 첫 원소의 번호는 0이고, for는 원소를 하나씩 꺼냅니다.

Swift
let titles = ["개미", "공책"]
for title in titles {
    print(title)
}
print(titles.count)

두 줄의 제목 뒤에 2가 출력됩니다. 번호가 필요하면 titles.indices를 순회하거나 enumerated()로 번호와 값을 함께 받습니다. 빈 배열의 count는 0이고 for 본문은 실행되지 않습니다.

정해진 횟수는 범위로 돕니다. 1...3은 1, 2, 3이고 1..<3은 1, 2입니다.

직접 해 보기

lateDays를 2로 바꿔 연체료가 200인지 확인하세요. titles에 한 권을 더 넣어 count가 3이 되는지도 확인합니다.

해설

2일은 3일 이하이므로 2 곱하기 100인 200입니다. 배열에 문자열을 하나 추가하면 count는 원소 수와 같습니다. 범위 1...3의 합을 따로 구하면 6입니다.