본문 바로가기
swift/basic

조건문, 반복문

by 신주봉 2024. 3. 25.

조건문

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]

'swift > basic' 카테고리의 다른 글

기본 함수  (0) 2024.03.25
Any, nill  (0) 2024.03.22
데이터 및 컬렉션 타입  (1) 2024.03.22
swift?  (1) 2024.03.22