기존 if-else와 크게 다르지 않지만 조건문을 감싸는 소괄호를 생략할수 있으며 조건 뒤에 나오는 문장이 한줄 일 경우에도 중괄호를 생략할 수 없다
기본형태
if condition {
//실행
} else if condition {
//실행
} else {
//실행
}
for i in 0..<100 {
var val:Int
if i % 2 == 0 {
val = i*i
}
else {
val = i
}
print(val)
}
swich구문의 활용도가 훨씬 강력하다. 기존의 정수값만을 취하던 비교에서 대부분의 스위프트 기본타입을 지원하고, 다양한 패턴과 응용이 가능하다
기본 형태
switch 비교값 {
case 패턴, ... :
//실행 구문
...
default:
//실행구문
}
let someCharacter: Character = "z"
switch someCharacter {
case "a":
print("The first letter of the alphabet")
case "z":
print("The last letter of the alphabet")
default:
print("Some other character")
}
var name:String = "woonsik"
switch name {
case "woonsik":
print("hello (name)! nice to meet you again~")
case "byeori", "벼리":
print("lovely (name)! haha")
default:
print("who are you?")
}
기존의 for-each구문과 유사하다. dictionary의 경우 이터레이션 아이템으로 튜플이 들어온다
이터레이션이란?
*어떤 객체의 원소에 하나씩 차례로 접근하는 것. 명시적으로든 암묵적으로든 반복문을 사용해 객체의 여러 원소에 하나하나 접근하면 그것은 이터레이션(iteration)이다.
기본형태
for item in items {
//실행구문
}
var integers = [1, 2, 3]
let people = ["woonsik":10, "byeori":20, "whois":44]
for integer in integers {
print(integer)
}
for (person:serial) in people {
print("name :" + (person) + "serial Num :"+ (serial))
}
기본형태
while 조건 {
//
}
while integers.count > 1 {
integers.removeLast()
}
기존의 do-while구문과 형태/동작이 유사하다
기본형태
repeat {
//실행
} while 조건
repeat {
integers.removeLast()
} while (integres.count > 0)