Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 4.84 KB

Ch5_for1.md

File metadata and controls

80 lines (64 loc) · 4.84 KB

for 문

지금까지 알아본 if 문은 어떤 조건을 비교할 때 주로 사용한다. 그렇다면 for 문 어떨까? for 문은 코드를 여러 번 반복하여 실행할 수 있는 문장이라서 '반복문'이라고 한다. 반복문에는 for 문이나 while 문이 있는데, 반복문은 중괄호로 된 코드 블록을 여러 번 반복할 수 있다. 결국 똑같은 코드가 반복되지만 그 안에서 변수와 조건문을 사용하면 값만 바꿔가면서 여러 번 실행할 수 있다.

for 문에는 항상 조건이 붙는다. 왜냐하면 조건 없이 무한정 반복하면 프로그램이 정상적으로 동작할 수 없기 때문이다. for 문은 for 키워드 뒤에 조건을 넣고 그 조건이 맞으면 중괄호 안의 코드가 동작하도록 만든다.

for ~ in 구문을 사용하기 위해 다음과 같은 코드를 입력한다.

for i in 0...5 {
    print("for ~ in 반복문 #\(i)")
}

출력값) for ~ in 반복문 #0
출력값) for ~ in 반복문 #1
출력값) for ~ in 반복문 #2
출력값) for ~ in 반복문 #3
출력값) for ~ in 반복문 #4
출력값) for ~ in 반복문 #5

for ~ in 구문이 사용되었는데 in 뒤에는 ... 연산자를 사용해 0부터 5까지의 범위 값이 사용되었다. 이렇게 만들어보면 for 문은 좀 더 단순하고 명확해진다. in 뒤에는 범위 또는 컬렉션(Collection)이 올 수 있고 그 안에 있는 하나하나의 값이 in 앞에 있는 변수에 할당된다. 컬렉션이란 여러 개의 데이터를 넣어둘 수 있는 배열과 같은 것들을 말한다. 여기에서 in 앞에 있는 변수에는 var 키워드를 붙일 필요가 없다.

그림

in 뒤에 컬렉션이 올 수 있으므로 이번에는 배열을 만들어 in 뒤에 넣어본다. 1부터 5까지 들어있는 배열을 만든 후 for 문을 사용해 각각의 원소들을 출력하는 코드를 다음과 같이 추가한다.

var numbers = [1, 2, 3, 4, 5]
for value in numbers {
    print("for ~ in 배열 원소 : \(value)")
}

출력값) for ~ in 배열 원소 : 1
      for ~ in 배열 원소 : 2
      for ~ in 배열 원소 : 3
      for ~ in 배열 원소 : 4
      for ~ in 배열 원소 : 5

in 뒤의 벼열에 들어 있는 각각의 원소들이 in 앞에 있는 value라는 이름의 변수에 할당되면서 중괄호 안의 코드가 실행된다. 코드를 실행하면 출력값처럼 다섯 번 반복 실행된 것을 알 수 있다.

in 뒤에 딕셔너리를 넣으면 어떻게 될까? 딕셔너리에 들어 있는 각각의 원소를 in 앞에 있는 변수에 하나씩 할당하면서 중괄호 안의 코드를 반복하게 된다. 이때 in 앞에는 각 원소의 키(Key)와 값(Value)이 함께 들어 있어야 한다. 따라서 투플 형식으로 받아 사용한다. 다음 코드를 입력하면서 어떤 형태로 코드를 만드는지 확인해 보자.

var orders = [1:"첫 번째", 2:"두 번째", 3:"세 번째", 4:"네 번째", 5:"다섯 번째"]
for (key, value) in orders {
    print("for ~ in 딕셔너리 원소 : \(key), \(value)")
}

var message = "안녕하세요!"
for ch in message.characters {
    print("for ~ in 문자열 : \(ch)")
}

출력값) for ~ in 딕셔너리 원소 : 1, 첫 번째
      for ~ in 딕셔너리 원소 : 4, 네 번째
      for ~ in 딕셔너리 원소 : 5, 다섯 번째
      for ~ in 딕셔너리 원소 : 2, 두 번째
      for ~ in 딕셔너리 원소 : 3, 세 번째
      for ~ in 문자열 : 안
      for ~ in 문자열 : 녕
      for ~ in 문자열 : 하
      for ~ in 문자열 : 세
      for ~ in 문자열 : 요
      for ~ in 문자열 : !

orders 변수에는 딕셔너리를 만들어 할당했다. 키는 1부터 5까지 입력되었고 값으로는 글자가 입력되었다. for ~ in 구문에 딕셔너리 객체를 넣었으므로 in 앞에는 소괄호를 사용해 투플 자료형의 변수를 만든 후 할당한다. 이렇게 하면 각 원소의 키와 값을 key 와 value 변수로 접근할 수 있다.

for ~ in 구문의 in 뒤에는 문자열 안에 들어 있는 문자들을 넣을 수도 있다. 문자열에는 characters라는 속성이 있는데 이 속성으로 문자열 안에 있는 각각의 문자에 접근할 수 있다. 이 방식은 많이 사용된다기보다는 문자열 안에 들어 있는 각각의 문자를 확인할 때 편리하게 사용할 수 있는 코드라고 할 수 있다. 코드를 실행하면 위의 출력값 같은 결과를 확인할 수 있다. for ~ in 구문은 스위프트에서 자주 사용되므로 형식을 잘 기억하는 것이 좋다.

Ch5_while1.md 파일로 가기

Swift Study Contents로 돌아가기