2023. 9. 26. 12:47ㆍiOS
<제어문(Control Flow)>
1. 반복문
- C언어 스타일의 증가 for문은 Swift 3에서 삭제
- for in 문을 사용하여 구현
1.1. for in 문 구조
- 기본 구조:
for index in [컬렉션 혹은 범위] {
print(index)
}
- 참조체 index가 사용되지 않을 경우 '_'(underscore)로 생략 가능
for _ in [컬렉션 혹은 범위] {
print("hello")
}
1.2. for in 문 활용
- 범위지정연산자(...)를 활용한 배열의 항목을 접근 예:
- key:value 형식의 dictionary 항목 접근 예:
1.3. dictionary의 특징
- 순서 없음
- 수정 가능
- key를 이용한 value 검색 가능
1.4. while 문
- C의 while문과 거의 동일하나, 표현식이 약간 다름
- while문 예:
1.5. repeat ~ while 문
- c 언어의 do...while문을 대체
- 조건에 상관없이 repeat 내의 문장을 반드시 1회 실행
1.6. break
- break을 만나면 해당 루프를 빠져나옴
- break 사용 예:
*주의: if 제어문 뒤 문장이 한줄이어도 반드시 괄호({})로 감싸야 함
1.7. continue
- continue를 만나면 반복문에서 continue 이후의 모든 코드를 건너뛰고 반복문의 상단 시작 위치로 돌아감
- continue를 활용한 홀수 출력 예:
2. 조건문
2.1. if 문 구조
- C언어와 달리 불리언 표현식 좌우로 괄호로 감싸지 않음
- 문장 길이와 상관없이 true일 경우 실행할 코드 좌우로 괄호를 필수적으로 사용
- AND 연산을 실행하는 연산자(C의 &&): ,
- if~else, 다중 if~else 문은 표현식의 차이를 제외하고 거의 동일
2.2. if 문 활용
- and 연산자를 활용한 조건 지정 예:
- 다중 if-else 문 예:
2.3. switch-case 문 구조
- 각 case의 조건이 참일 경우 해당 문장을 실행
- 각 case는 반드시 몸체에 문장을 가져야 함
- case가 모두 거짓일 경우 default 블록 실행
- 각 case 종단에 break문을 기입하지 않아도 들어있기 때문에 case 실행 후 switch를 빠져나옴
- 콤마(,)를 사용하여 여러 경우를 포함하는 case 조건 사용 가능
- case에 where 절을 추가하여 부가적인 조건을 넣을 수 있음
- case 문장에 fallthrough문 사용 시 자동 break 처리하지 않고 다음 코드를 수행
2.4. switch-case 문 활용
- switch-case 사용 예:
- 콤마를 사용한 case 결합:
- *범위 지정 매칭을 활용한 BMI 지수 측정:
- where 절을 활용한 조건 추가 예:
- fallthrough를 활용한 예:
2.5. where 절 활용
- for 문에서의 활용:
<함수>
3. 함수
3.1. 함수의 기본 개념
- 특정 작업을 수행하는 코드 블록
- parameter(매개변수): 함수 정의부의 인자
- argument(인수): 함수 호출 시 넘겨주는 actual parameter
- 메서드: 특정 클래스. 구조체, 열거형 내의 함수
3.2. 함수의 정의 및 호출
- 정의 시 기본 구조:
func <함수명> (<매개변수 이름>: <매개변수 타입>, <매개변수 이름>: <매개변수 타입>,... ) -> <반환값 타입> {
// 함수 코드
}
- func: 함수라는 것을 스위프트 컴파일러에게 알려주는 키워드
- <함수명>: 함수에 할당되는 이름
- <매개변수 이름>: 함수 코드 내에서 참조되는 매개변수의 이름
- <매개변수 타입>: 함수에 전달되는 매개변수의 타입
- <반환값 타입>: 함수가 반환하는 결과에 대한 데이터 타입으로,
반환하지 않으면(Void) 반환값 타입(Void)과 ->는 생략 가능
- 함수명()을 통해 호출 가능
- 리턴값이 없는 함수의 정의 및 호출 예:
- 두 매개변수를 더한 값을 리턴하는 함수의 정의 및 호출 예:
- 함수의 자료형은 (매개변수 자료형, 매개변수 자료형...) -> 리턴값 자료형으로 이루어짐
3.3. 매개변수명 지정
- 함수 선언 시 parameter name과 argument label을 지정할 수 있음
- 함수 정의 시 parameter name, 호출 시 argument label을 사용
- 함수 선언 시 argument label 지정을 생략할 수 있으며, 이 경우 parameter name이 둘다 역할
- argument label을 '_'(underscore)로 지정 시 호출할 때 argument label을 생략 가능
- 보통 첫번째 argument label만 생략하고, 두번째부터 지정하여 사용
- 다양한 함수 정의 예:
3.4. 함수명
- swift에서 함수명은 argument label까지 포함
- #function 리터럴을 활용하여 함수명을 확인할 수 있음
- *함수명 출력:
4. 참고자료: iOS 프로그래밍 기초 강의 - 한성현 교수님
'iOS' 카테고리의 다른 글
Mac 입문, Xcode 입문 (0) | 2023.10.31 |
---|---|
first class object - 2, Class (0) | 2023.10.17 |
Swift 함수, first class object - 1 (0) | 2023.10.10 |
Swift 문법 - 1 (0) | 2023.09.19 |
Swift 입문 (0) | 2023.09.12 |