안녕하세요?
오늘은 제어 흐름 (Control Flow)에 관하여 알아보려고 합니다!!
기본적으로 세 가지 종류로 나눌 수 있답니다
반복문(Loop Statements)
조건문(Conditional Statements)
제어 전달문(Control Transfer Statements)
반복문
우선 반복문은 조건에 따라 특정 코드 블록을 반복적으로 실행한답니다
코드 블록의 반복을 Loop라고 부릅니다
반복문은 For / While 2개의 반복문으로 이루어져 있습니다
우선 For 반복문은 주어진 구문을 정해진 횟수만큼 실행한다는 점입니다
- for 반복문
- for ~ in : 순서에 따른 각각의 아이템에 대하여 일련의 구문을 반복적으로 실행하는 차이
- while 반복문 : 주어진 조건이 false가 될 때까지 계속해서 일련의 구문을 반복 실행함(만약 조건이 없다면 무한 루프!!에 빠짐)
- while : 루프를 시작할 때 조건을 평가하지만
- repeat ~ while : 루프를 첫번째 완료하고 조건을 평가합니다(조건이 참이 아니더라도 최소 한번은 반드시 실행됨)
- forEach : for ~ in과 유사한 기능을 한다
이렇게 글로 보면 이해가 안될 수도 있으니
코드와 함께 한 번 더 정리하는 시간!
for
for 구문은 루프의 조건절이 true 값을 유지하는 동안
카운터를 계속 증가시키면서 주어진 코드 블록을 반복해서 실행한답니다!
보통 다른 언어에서 하단의 이미지처럼 사용을 많이 하는데
swift3 까지 지원을 했으나 현재는 다른표현을 사용하고 있답니다
지금 이렇게 사용하면 안된답니다
xxxxx
현재 사용하는 반복문 식은
바로!
for~in구문
이라고 하는데요
스위프트가 3까지 for구문을 지원하고 for - in 구문을 지원하는건
쉽게 작성이 가능하고 직관적이기 때문이라고 생각한답니다
이제 코드를 보면서 이해해보자구요!
위에 이미지를 보면 for 다음 변수가 오는데
변수는 var가 아니고 let 즉 변경이 되지 않는 걸로 하나씩 출력이 된답니다
그래서 반복상수 자체를 변경시키고 싶어도 반복상수 자체를 변경할 수 없습니다!
이해가 가지 않는다면 코드로 통해서 알아봅시다
첫번째는 변수자체를 변경하는게 아니므로 오류가 나지 않지만
두 번째 식은 index 변수의 자체값을 변경하려고 하기때문에 오류가 나는걸 알 수 있습니다
즉
index(반복상수)는 모다?
let(상수) 이다
근데 왜 자꾸 상수를 변수라고 부르죠?..
TMI라고 할 수 있지만
사실 변수, 상수 둘 다 통상적으로 변수
라고 부르고 있답니다
이개뭔소리야.. 할 수 있겠지만 그러하답니다
일반적으로 어떤식으로 사용하냐
시작변수나 마지막 숫자를 변수로 지정하는 경우도 많지만
일반적으로 1...마지막 숫자(변수)
설정하여서 사용을 많이 한답니다
여기서 배열이나 컬렉션의 하나인 딕셔너리 등에서도 사용을 한답니다
위 이미지는
딕셔너리로 찾아서 내림차순으로 한답니다
여기기서 ?.란?.. 나중에 배우겠지만 optional이라는 것입니다
나중에 배울 옵셔널 체이닝에서 자세히 다루도록 하겠습니다
살짝 이야기하자면 존재하지않으면 nil 이며 (오류가 나지 않고) sort메서드는 호출이 되지 않습니다
여기서
단순하게 나는 반복상수를 사용하지 않고 그냥 출력하고 싶다면?
와일드 카드 패턴이란게 있답니다
코드를 보면서 이해하면 편하니 코드 예시하나를 보여주자면
이런식으로 for문 다음에 들어갈 변수에 _(언더바)를 사용하면 된답니다
이렇게 문자열에서도 사용하여 character와 같이
한 글자씩 출력하는걸 확인할 수 있습니다
그리고 다양한 활용이 가능한데
이런식으로 reversed()를 사용하여 반대로 출력도 가능하답니다
reversed란 ??
stride도 사용해서 for문을 사용할 수 있답니다
stride는 건너뛰다로 생각하시면 될것같습니다
그래서 코드를 보고 설명을 하자면
to를 사용하면 포함이 안되고
through를 사용하게되면 조건에 부합하는 마지막 숫자를 포함하게 됩니다
정리하다보니 길어졌네요
while문은 다음편에 정리하도록 하겠습니다 :)
** 잘못된 정보가 있다면 꼭 댓글로 알려주세요!**
참고
https://developer.apple.com/documentation/swift
https://bbiguduk.gitbook.io/swift/language-guide-1/control-flow
구글번역기
'Swift' 카테고리의 다른 글
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 foreach와 for문에 관하여 (0) | 2024.05.09 |
---|---|
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 while문 (0) | 2024.05.09 |
Swift 공식문서| The Basic 기본연산자에 관하여 (0) | 2024.05.08 |
Swift 공식문서| The Basic 자료형에 관하여 - Bool / String / Character (0) | 2024.05.08 |
Swift 공식문서| The Basic 자료형에 관하여 - Float / Double (0) | 2024.05.08 |