안녕하세요! @geunwoong0624 Decoy입니다.
오늘은 반복문에 대해 알아보도록 하겠습니다!
반복문은 조건문, 제어문과 함께 흐름제어구문으로 거론이 되며
추후에 배울 조건문과 같이 프로그래밍에서 가장 많이 사용하는 문법중 하나입니다!
오늘 설명은 눈을 크게 뜨고 잘 익혀두시기 바랍니다
그럼 시작합니다
흐름제어구문 : 프로그램이 실행될 때 프로그램의 실행 흐름을 제어 하기 위한 구문
반복문
- 조건을 설정하고 조건이 맞다면 반복적으로 소스를 실행합니다
For 문
for 변수 in 반복횟수 {
실행할 구문
}
- 주로 정해진 횟수만큼 반복할때 사용합니다.
ex)
for i in 1...5{
i
}
위의 소스에서 알 수 있듯이 앞서 배운 범위연산자를 통해서 반복문의 조건을 지정할 수 있습니다.
(이제부터 배우는것들은 이렇듯 조금씩이라도 연결이 가능합니다)변수로 배열, 딕셔너리, 집합, 범위연산, 문자열 등 가능합니다.
(변수로 사용되는 대상들은 아직 전부 배운것이 아니기에 천천히 알아가도록 하겠습니다.)변수는 자동적으로 선언이 되기에 따로 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")
}
While 문
while 조건 {
실행할구문
}
- 조건이 참이면 반복적으로 실행되고 조건이 거짓이면 반복이 종료됩니다.
즉, 조건이 만족되는 동안 반복됩니다
ex)
var i = 1
while i<=5 {
i
i+=1
}
반복이 진행 되면서 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
반복이 진행되기전 해당 예시들은 한번씩은 돌아갑니다.
오른쪽의 경우 l이 2가 된후에 조건을 검사하는데 이때 i가 1보다 작아야 하니 조건이 false가 되어 반복이 종료됩니다.
이렇듯 repeat ~ while 에서 가장 중요한 것은 조건과 관계없이 최소 1번은 실행구문이 실행된다는 것입니다.
오늘 준비한 반복문에 대한 설명은 여기까지입니다.
조금의 부주의한 프로그래밍이 무한적인 반복을 생성할 수 있고 잘못된 형식의 반복은 어떻게 돌아가는지 이해하기 어려운 환경을 만들어 낼 수 있습니다.
하지만 이를 이해하고 조금더 많은 노력을 들인다면 분명히 좋은 프로그램을 만들 수 있습니다.
다음은 조건문에 대해 포스팅하겠습니다.
선 100일만 1일 1포스팅 버텨 보세요
[Ourselves 캠페인]
셀프보팅을 하지 않고 글을 올리시고
ourselves 테그를 달아 주시면
어떤 일이 일어날까요?
긴 젓가락으로 서로 먹여주는 천국이 이뤄지지 않을까요?
잘읽었어요. @홍보해
감사합니다ㅎ
제가 글에 소질이 없고 내용도 재미없지만 열심히 쓰겠습니다!
이후에는 좀더 재밌는 내용들도 올리겠습니다!