조건문
Swift에서 조건문은 크게 if문과 switch문으로 나뉨.
1. if 문
조건 값을 감싸는 소괄호는 생략가능.
if (조건) {
/* 설명 구문 */
}
if (조건) {
/* 설명 구문 */
} else {
/* 설명 구문 */
}
if 조건 {
/* 설명 구문 */
} else if 조건 {
/* 설명 구문 */
} else {
/* 설명 구문 */
}
2. switch 문
정수타입 뿐만 아니라, 스위프트의 모든 기본 타입이 지원 가능하며, 다양한 패턴으로 응용 가능.
switch 비교값 {
case 패턴1:
/* 설명 구문 */
case 패턴2, 패턴3:
/* 설명 구문 */
default:
/* 설명 구문 */
}
switch문 유의사항
1. 각각의 case 내부에는 실행 가능한 코드가 반드시 위치해야됨 !
let test: Character = "shin"
switch test {
case "aaaaaa": // 에러, 실행 구문이 최소 1개는 있어야함
case "dddddd":
print("test1")
default:
print("test2")
}
2. 매우 한정적인 값(ex. enum의 case 등)이 비교값이 아닌 한 default 구문은 반드시 작성 해야함!
var test: Int = 1
switch count {
case 10 :
print("10이당")
case 1...9:
print("1~9당")
}
// error
3. 명시적 break를 하지 않아도 자동으로 case마다 break가 됨 !
var test: Int = 1
switch count {
case 10 :
print("10이당")
break
case 1...9:
print("1~9당")
// break 생략가능
default :
print("10넘는당")
}
3. 쉼표(,)를 사용하여 하나의 case에 여러 패턴을 명시할 수 있음!
switch "iOS" {
case "iOS":
print("iOS !!!!")
case "Android", "Web":
print("testestest")
default:
print("unknown")
}
4. fallthrough 키워드를 사용하여 break를 무시할 수 있음 !
switch "iOS" {
case "iOS":
print("원래는 여기까지 출력")
fallthrough
case "Android", "Web"
print("falltrough때문에 여기까지 출력!!")
defalut:
print("unknown)
}
반복문
swift에서 반복문은 for-in 문과 while 문, repeat-while 문 으로 나뉘어 있음.
1. for -in
for문, for-each문과 유사함
기본적인 구조는 다음과 같이,
items에 있는 item의 갯수만큼 반복되는 형태
for item in items {
/* 실행 구문 */
}
ex1)
var list = [1,2,3]
for number in list {
print(number)
}
ex2) item부분에 범위 연산자(...)를 활용해 범위를 넣을 수도 있음
for count in 1...3 {
print(count)
}
// 1
// 2
// 3
ex3)
for _ in 5..<8 {
print("반복 출력 !!!")
}
// 반복 출력 !!!
// 반복 출력 !!!
// 반복 출력 !!!
dictionary를 for 문에 넣으면 (key, value)형태를 가진 튜플로 item들이 반환됨.
튜플의 값을 꺼내 쓰는건 가능하지만, 값 자체에 접근하여 수정하는 행위는 불가능.
let people = ["jooyong" : 30, "chaerin" : 25]
for (name, age) in people {
print("\(name): \(age)"),
}
// chaerin : 25
// jooyong : 30
// Dictionary는 순서 보장X
// 튜플 값은 let으로 넘어옴
참고)
enumurated 메소드를 활용하면 일반 Array도 인덱스와 아이템을 좀 더 편하게 꺼낼 수 있움
enumureate()는 일반 Array를 (n,x) 형태의 튜플로 반환하는 함수인데,
여기서 n 은 0부터 원소 개수까지 차례로 연속적인 숫자를 뜻하고, 여기서 x는 해당 순서의 요소를 뜻함
var nameList = ["a", "b", "c"]
// Dictionary의 item은 key와 value로 구성된 튜플 타입
for (index, item) in nameList.enumerated() {
print("\(index)번째 : \(item)")
}
// 0번째 : a
// 1번째 : b
// 2번째 : c
2. while
조건을 만족한다면 해당 실행구문을 계속 반복함.
while 조건 {
/* 실행 구문 */
}
ex)
var integer : [Int] = [1,2,3]
while integers.cont > 1 {
integers.removeLast()
print(integers)
}
// [1,2,3]
// [1,2]
// [1]
3. repeat - while
다른 언어에서 사용하는 do - while문과 동작방식이 동일함
while문에서는 조건을 먼저 검사하고 실행했다면,
repeat - while 문은 우선 실행한 이후에, while에서 조건을 검사한 뒤, 다시 repeat으로 들어가는 구조
repeat {
/* 실행 구문 */
} while 조건
ex)
var integers : [Int] = [1,2,3]
repeat{
integers.removeLast()
print(integers)
} while integers.count > 1
// [1,2]
// [1]