-
[Swift] 조건문(Conditional), 반복문(Loop)iOS/Swift 2022. 7. 26. 14:22
조건문
if - else 구문
- if 뒤에 소괄호는 생략 가능하지만, 중괄호는 생략 불가
- Swift의 조건에는 항상 Bool 타입이 와야 한다
switch 구문
- switch 사용 시에 반드시 default값이 존재해야 한다. 안 그러면 컴파일 에러!
// ERROR: switch must be exhaustive
- break문이 명시하지 않아도 자동으로 설정되어 있음
// 무시하는 방법: fallthrough
case 1..<100: .. 온점 2개는 1이상 100미만
print("1~99")
case 100:
print("100")
case 101...Int.max: ...온점 3개는 1이상 max이하
print("over 100")
소스코드
// // Conditional.swift // iOS study // // Created by yeonsu on 2022/07/26. // import Swift let someInteger = 100 // ================== < if - else 구문 > ================== if someInteger < 100 { //if 뒤에 소괄호는 생략 가능하지만, 중괄호는 생략 불가 print ("100 미만") } else if someInteger > 100 { print ("100 초과") } else { print ("100") } //100 출력 // Swift의 조건에는 항상 Bool 타입이 와야 한다 // Ex) someInteget는 Int 타입이기 때문에 if문의 조건문에 쓸 시 컴파일 오류 발생! // if someInteger {} //컴파일 에러 // ================== < 범위 연산자 Switch > ================== // switch 사용 시에 반드시 default값이 존재해야 한다. 안 그러면 컴파일 에러! // ERROR: switch must be exhaustive // break문이 명시하지 않아도 자동으로 설정되어 있음 // 무시하는 방법: fallthrough switch someInteger { case 0: print("zero") case 1..<100: //1이상 100미만 print("1~99") case 100: print("100") case 101...Int.max: print("over 100") default: print("Unknown") } //100 출력 // 정수 외에도 대부분의 기본 타입을 사용할 수 있다 switch "yeonsu" { case "jenny": print("jenny") case "mina": print("mina") case "jobs": print("jobs") default: print("Unknown") }
출력결과
반복문
for - in 구문
/* for 임시상수 in 시퀀스아이템 { 실행코드 } */ for i in integers { print(i) }
Dictionary의 item은 key와 value로 구성된 튜플 타입이다
for (name, age) in people { print ("\(name): \(age)") }
튜플 타입이란?
- 다양한 값(데이터)들의 묶음(배열과의 차이점 존재O, 튜플은 데이터 타입이 같을 필요가 없음)
var 변수명: (데이터 타입1, 데이터 타입2) = ( 값1 , 값2) //괄호 안에 원하는 값 나열
var 변수명 = (값1, 값2) //Swift가 알아서 타입 적용let yeonsu = ("Kim", 24)
- 튜플은 선언할 때 배열과 같이 index를 가진다
- 튜플을 선언한 뒤에 자료형/멤버의 개수를 변경할 수 없다
튜플 값에 접근하는 방법
.(dot)
yeonsu.0 //Kim yeonsu.1 //24
튜플 네임
let yeonsu = (name: "yeonsu", age: 26)
이름을 설정하면 index가 아닌 지정한 이름으로 접근이 가능하다
튜플 값 분해하기
튜플의 멤버를 각각 상수에 저장하고 싶을 때
var yeonsu = (name: "yeonsu", age: 24) let name = yeonsu.name let age = yeonsu.age ===== < decomposition 문법 > ===== let (name, age) = yeonsu ===== < wildcard pattern > ===== // 필요없는 멤버 생략하고 바인딩 가능 let(name, _) = yeonsu //기존에는 튜플의 개수 = 상수의 개수여야 함
🔗 https://babbab2.tistory.com/31 게시글을 참고했습니다.
while / repeat - while 문
Swift에서 do - while 을 쓰지 않는 이유는 do가 에러를 표시할 때 사용하기 때문이라고 한다
소스코드
// // loop.swift // iOS study // // Created by yeonsu on 2022/07/26. // import Swift var integers = [1, 2, 3] let people = ["yeonsu": 24, "John": 25, "Mike": 23] // ================= < for - in > 구문 ================= /* for 임시상수 in 시퀀스아이템 { 실행코드 } */ for i in integers { print(i) } // Dictionary의 item은 key와 value로 구성된 튜플 타입이다 for (name, age) in people { print ("\(name): \(age)") } // ================= < While > 구문 ================= while integers.count > 3 { //조건 숫자에 따라 달라지는 거 뭐지..? integers.removeLast() } print(integers) // ================= < repeat - while > 구문 ================= repeat { integers.removeLast() } while integers.count > 0 print(integers)
실행결과
'iOS > Swift' 카테고리의 다른 글
[Swift] 구조체(struct)와 클래스(class) (0) 2022.08.02 [Swift] 옵셔널(Optional) (0) 2022.07.26 [Swift] 함수(Func) - 고급 (0) 2022.07.25 [Swift] 함수(Func) - 기본 (0) 2022.07.25 [Swift] 컬렉션 타입(Array, Dictionary, Set) (0) 2022.07.25