Community post
[KR-DEV] 다시 시작하는 Swift - 반복문
안녕하세요! @geunwoong0624 Decoy입니다.
오늘은 반복문에 대해 알아보도록 하겠습니다!
반복문은 조건문, 제어문과 함께 흐름제어구문으로 거론이 되며
추후에 배울 조건문과 같이 프로그래밍에서 가장 많이 사용하는 문법중 하나입니다!
오늘 설명은 눈을 크게 뜨고 잘 익혀두시기 바랍니다
그럼 시작합니다
흐름제어구문 : 프로그램이 실행될 때 프로그램의 실행 흐름을 제어 하기 위한 구문
반복문
- 조건을 설정하고 조건이 맞다면 반복적으로 소스를 실행합니다
For 문
for 변수 in 반복횟수 {
실행할 구문
}
- 주로 정해진 횟수만큼 반복할때 사용합니다.
ex)
for i in 1...5{
i
}
https://steemitimages.com/DQmVqirbXdEiH229Rhdk9M3inQCQzAoz1xbHjqBtiKNBobv/1번.png
-
위의 소스에서 알 수 있듯이 앞서 배운 범위연산자를 통해서 반복문의 조건을 지정할 수 있습니다.
(이제부터 배우는것들은 이렇듯 조금씩이라도 연결이 가능합니다) -
변수로 배열, 딕셔너리, 집합, 범위연산, 문자열 등 가능합니다.
(변수로 사용되는 대상들은 아직 전부 배운것이 아니기에 천천히 알아가도록 하겠습니다.) -
변수는 자동적으로 선언이 되기에 따로 var이나 let으로 선언해줄 필요 없습니다.
(이때의 변수는 for문 안에서만 사용이 가능합니다.) -
Q) 그렇다면 String의 경우는 어떨까요?
A) String은 한글자씩 변수에 저장됩니다.
for ch in "ABCDE"{
ch
}
의 경우 ch는 순차적으로 A,B,C,D,E 값이 저장됩니다.
- 스위프트에서 문법적으로는 필요하지만 우리에게는 필요하지 않은 부분들에 대해서는 생략이 가능합니다. 예를 들어 반복이 1~5까지는 되지만 변수가 필요없는 경우가 있죠.
for i in 1...5{
print(“a\n”)
}
대표적인 예시입니다. 이때는 i 대신에 _(언더바)를 사용하면 됩니다.
for _ in 1...5{
print("a\n")
}
https://steemitimages.com/DQmfYzttUwWXof6tFgBvAigLfHqGLwWJWezmRMbqGhVaEV4/2번.png
While 문
while 조건 {
실행할구문
}
- 조건이 참이면 반복적으로 실행되고 조건이 거짓이면 반복이 종료됩니다.
즉, 조건이 만족되는 동안 반복됩니다
ex)
var i = 1
while i<=5 {
i
i+=1
}
https://steemitimages.com/DQmf61gNrADRhT1bfuyUw2pe9cSwXgYJKDntftZjJfwTPGN/3번.png
-
반복이 진행 되면서 i의 값이 1씩 증가 합니다. 이때 i가 6 이상이 되면 조건이 만족하지 않으므로 반복이 종료됩니다.
-
Q) 만약 조건에 항진 값을 넣으면 어떨까요?
A) 조건에 true를 넣을 경우 조건이 항상 참이기에 반복은 종료되지 않고 계속적으로 반복됩니다. -
Q) while 반복문에서 i가 증가하는 부분이 없다면 어떻게 될 까요?
A) i가 증가하는 부분이 없다면 i가 1에 머물러있기에 조건은 항상 참이 될 것입니다.
repeat~while 문
repeat{
실행구문
} while 반복조건
- 우선 반복문 안에 있는 소스가 한번 실행이 된후 조건을 판별하여 반복할지 종료할지 결정됩니다.
ex)
var i = 1 var a = 1
repeat{ repeat{
i a
i+=1 a+=1
}while i<=5 }while a<1
https://steemitimages.com/DQmShJJhcTyXd6DoGEdvyWKnNbHafvnucm5MTwUZQZs4YAc/4%2C5번.jpg
-
반복이 진행되기전 해당 예시들은 한번씩은 돌아갑니다.
-
오른쪽의 경우 l이 2가 된후에 조건을 검사하는데 이때 i가 1보다 작아야 하니 조건이 false가 되어 반복이 종료됩니다.
-
이렇듯 repeat ~ while 에서 가장 중요한 것은 조건과 관계없이 최소 1번은 실행구문이 실행된다는 것입니다.
오늘 준비한 반복문에 대한 설명은 여기까지입니다.
조금의 부주의한 프로그래밍이 무한적인 반복을 생성할 수 있고 잘못된 형식의 반복은 어떻게 돌아가는지 이해하기 어려운 환경을 만들어 낼 수 있습니다.
하지만 이를 이해하고 조금더 많은 노력을 들인다면 분명히 좋은 프로그램을 만들 수 있습니다.
다음은 조건문에 대해 포스팅하겠습니다.
선 100일만 1일 1포스팅 버텨 보세요
[Ourselves 캠페인]
셀프보팅을 하지 않고 글을 올리시고
ourselves 테그를 달아 주시면
어떤 일이 일어날까요?
긴 젓가락으로 서로 먹여주는 천국이 이뤄지지 않을까요?
Replies (3)
잘읽었어요. @홍보해
감사합니다ㅎ
제가 글에 소질이 없고 내용도 재미없지만 열심히 쓰겠습니다!
이후에는 좀더 재밌는 내용들도 올리겠습니다!