-
[레인스톤 iOS] 스위프트 easy하게 배워볼까? - 제어문(1)Swift 기초문법 2022. 2. 18. 20:16반응형
안녕하세요!
iOS개발자로 일하고있는 레인스톤입니다:)
오늘은 제어문 1편!
반복문에 대해서 학습해보겠습니다.
For-In 문 (For-In Loops)
For-In 문은 콜렉션 타입, 숫자, 문자열 등을 순서대로 순회할 때 사용합니다.
역시 코드를 보는게 이해가 빠르기 때문에 바로 예시를 살펴보겠습니다:)
var starbucks = ["아메리카노", "카페라테", "카모마일티", "핫초코"] for menu in starbucks { print(menu) } /* 아메리카노 카페라테 카모마일티 핫초코 */
콜렉션 타입 중 배열을 순회해봤습니다.
그럼 key-value값을 가지고 있는 사전을 순회할 때는 어떻게 해야될까요?
var starbucks = ["아메리카노": 4600, "카페라테": 5100, "카모마일티": 4600, "핫초코": 5700] for (menu, price) in starbucks { print("\(menu): \(price)원") } /* 핫초코: 5700원 아메리카노: 4600원 카페라테: 5100원 카모마일티: 4600원 */
이렇게 튜플 안에 (key, value) 형식으로 순회를 하면 되겠죠?
잠깐!? 튜플이 뭔가요...? 는 2편에서 나옵니다.
잠시만 기다려주세용!
아니 근데 For-In문은 순서대로 순회한다고 했는데...
왜 아메리카노부터 출력되지 않았을까요!?
콜렉션 타입에서 설명드린 것처럼 사전은 순서를 보장하지 않습니다!
For-In문의 문제가 아니라 사전때문이라는 점! 잊지 말아주세요:)
for status in "졸림 배고픔" { print(status) } /* 졸 림 배 고 픔 */ for number in 1...5 { print(number) } /* 1 2 3 4 5 */
콜렉션 타입이 아닌 문자열과 숫자(+범위연산자)도 순회할 수 있습니다.
"졸"과 "림"이 따로 출력된 점을 주의깊게 봐주세요.
문자열의 띄어쓰기 단위가 아니라 문자(Character) 단위로 순회하여 출력되고 있습니다.
var fiveTimes = 5 var answer = 0 for _ in 0..<fiveTimes { answer += 1 } print(answer) // 5
이렇게 범위 연산자와 함께 사용할 수도 있고,
변수를 사용할 필요 없으면 _ 키워드로 생략할 수도 있습니다.
음... 근데 1씩이 아닌 2, 3, 4씩 늘려가며 순회를 하고 싶을땐 어떻게 해야할까요?
아니면 1부터 5아닌 5부터 1로 순회하고 싶을 때라면요!?
for number in stride(from: 2, to: 10, by: 2) { print(number) } /* 2 4 6 8 */ for number in stride(from: 5, through: 1, by: -1) { print(number) } /* 5 4 3 2 1 */
쨔쟌 ~ stride를 활용해서 가능합니다.
혹시 두 For-In문의 차이점을 발견하셨나요!?
위는 stride(from: to: by:) 아래는 stride(from: through: by:)로 to와 through가 다르네요.
to는 ..<의 역할을 하기때문에 (to: 10)은 10까지가 아니라 9까지 순회합니다.
through는 ...의 역할을 하기 때문에 (through: 10)은 9가아니라 10까지 순회합니다.
헷갈리지마세용 ㅎㅎ
While문(While Loops)
For-Loop 말고 While을 통해서도 반복&순회를 할 수 있습니다.
스위프트에서는 while과 repeat-while을 사용할 수 있죵!
while + condition을 활용하여 condition이 false가 될 때 까지 반복할 수 있습니다.
역시 코드를 살펴보며 이해해볼까요!?
var number = 0 while number < 5 { number+=1 print(number) } /* 1 2 3 4 5 */
while 옆에 condition자리에 number < 5 에 집중하시면 됩니다.
number가 5보다 작을 때만 while문이 반복됩니다.
즉 number가 5가되는 순간 while문 반복이 중단됩니다.
repeat-while은 다른 언어의 do-while과 비슷하다고 생각하시면 됩니다.
while 구문을 최소 한 번 이상 실행하고 조건을 판단합니다.
말이 어렵죠? 역시 코드로 이해해보겠습니다.
var number = 5 repeat { number+=1 print(number) // 6 } while number < 5
while문의 조건은 5보다 작을 때이지만, repeat이 붙었기 때문에 최소 1번은 실행됩니다.
따라서 number에 1이 더해져서 6이되고 condition과 비교하여 false가 된 후 반복문이 종료됩니다.
끗!
오늘은 여기까지 ~
다음 시간에는 조건 구문으로 돌아오겠습니다!
안녕:)
반응형'Swift 기초문법' 카테고리의 다른 글
[레인스톤 iOS] 스위프트 easy하게 배워볼까? - 제어문(3) (0) 2022.04.10 [레인스톤 iOS] 스위프트 easy하게 배워볼까? - 제어문(2) (0) 2022.03.12 [레인스톤 iOS] 스위프트 easy하게 배워볼까? - 콜렉션 타입(2) (0) 2022.02.15 [레인스톤 iOS] 스위프트 easy하게 배워볼까? - 콜렉션 타입(1) (0) 2022.02.12 [레인스톤 iOS] 스위프트 easy하게 배워볼까? - 문자열과 문자(3) (0) 2022.02.10