지난 번에는 조건문 if에 대하여 알아보았다.
✏️이번엔 반복문 for과 while에 대하여 알아보자!
반복문이란 무엇인가 ?
주어진 횟수나 조건에 만족하면 특정 부분을 반복하여 수행하는 구문을 반복문이라고 한다.
반복문은 특정 패턴이 있는 부분을 반복문을 사용하여 간략하게 할 수 있다.
🔎우선 for문에 대하여 알아보자.
for <반복 변수> in <반복 범위> :
<코드>
우선 작성 코드는 위와 같다.
<반복 변수>는 <반복 범위>에 따라 변경되며 <코드>를 수행한다.
글로 설명하면 이해하기가 어려울 것이다.
예를 들어 보겠다.
A = [1, 2, 3, 4]
for i in A :
print(i)
#출력값
1
2
3
4
<반복 변수> i에 A값을 입력한 for 반복문을 작성하면,
A의 리스트 순서대로
1
2
3
4
위 값들이 차례대로 i의 기입되어 출력되는 것을 확인할 수 있다.
그리고 해당 값이 전부 입력되면 반복문이 종료된다.
<반복 범위>는 range( )함수를 사용하여 범위를 지정할 수 있고, 위와 같이 '리스트'를 기입할 수도 있다.
또한, len( ) 함수를 사용할 수 도 있다.
country = ['korea', 'china', 'canada', 'japan']
for i in range(len(country)):
print(country[i])
#출력값
korea
china
canada
japan
위 코딩을 풀이하자면,
country 라는 리스트 안에 각 국가명이 기입되어있다.
그리고 for 반복문을 사용하여,
<반복 변수> i의 범위를 country의 항목 갯수 4를 기입하였다.
그러면 i의 변수에는 (0, 1, 2, 3)의 값이 순차적으로 기입이 될 것이다.
출력값은 인덱싱을 사용하여 country[0] = korea 부터 country[3] = japan 까지 순차적으로 출력된다.
또한, for 문은 중첩으로도 사용이 가능하다.
X = [1, 2, 3]
Y = ['a', 'b', 'c']
for i in X :
for k in Y:
print(i, k)
#출력값
1 a
1 b
1 c
2 a
2 b
2 c
3 a
3 b
3 c
위 코딩을 요약하여 설명하자면,
<반복 변수 1> i 에는 우선 X의 첫 번째 순서인 1이 기입된다.
두 번째 <반복 변수 2> k에는 Y의 첫 번째 'a' 값이 기입된다.
그래서 첫 출력값은 '1 a'로 출력된 것이다.
다만, Y의 값 'b', 'c' 가 남아있어 두 값도 순차적으로 출력되어,
'1 b', '1 c' 값이 출력되었다.
Y의 값이 모두 출력되면 반복문은 첫 번째 반복문으로 돌아가 X의 2값을 기입한다.
그 후로는 X의 3값과 Y의 'c'값이 출력될 때 까지 반복 후 종료가 된다.
🔎 그 다음 while 반복문에 대하여 알아보자 !
반복문에는 for 문이 있는데 왜 while 까지 필요한가 ?!
<반복 범위>가 정해져 있을 경우, for 문을 사용한다.
다만, <반복 범위> 가 없이 조건 만족 여부에만 따라 반복문을 수행하고 싶을 경우 while 문을 사용한다.
while <조건문> :
<코드>
우선 작성 코드는 위와 같다.
설명하자면,
<조건문>에 대하여 만족한다면 코드가 반복하여 수행되고,
<조건문>에 대하여 만족을 하지 못한다면 코드의 반복이 종료된다.
예를 들어,
A = 0
while A < 5 :
print(A)
#출력값
0
0
0
...
위와 같이 코드를 작성하였을 경우,
A 의 값은 0이고 <조건문>에 만족을 하기 때문에 0 값을 무한으로 출력하게 된다.
다만, A의 값의 변화를 주고 싶을 경우,
A = 0
while A < 5 :
A = A + 1
print(A)
#출력값
1
2
3
4
5
위 코드와 같이 반복문 안에 A = A + 1 과 같은 식을 추가해주면 된다.
그러면 반복 횟수에 따라 값이 추가가 되고,
추가가 되어 주어진 <조건문> 에 만족을 하지 않게 되면 반복문은 종료가 된다.
<조건문>에 조건을 주지 않고 무한으로 출력을 하고 싶을 경우,
while True :
print('ABC')
#출력값
ABC
ABC
ABC
...
<조건문> 부분에 'True' 참 값을 기입하면 반복문이 무한으로 수행된다.
위 반복문 for 과 while 을 사용할 경우,
반복문의 수행과 종료를 제어할 수 있는 반복 제어문이 있다.
그것은 바로 continue, break 두가지 이다.
✏️for 문의 continue, break 예를 알아보자!
우선, continue와 break 없이 코딩을 작성하였다.
country = ['korea', 'japan', 'china', 'canada', 'germany', 'france']
for i in range(len(country)) :
print(country[i])
#출력값
korea
japan
china
canada
germany
france
출력하면 <반복 변수> i 에 country의 항목 수 (len(country)) 6의 값이 기입된다.
반복 코드에 인덱스를 사용하여 country[0] = 'korea' 부터 country[5] = 'france' 까지 순차적으로 출력된다.
위 함수에 제어 함수 break 를 추가하여 보자.
country = ['korea', 'japan', 'china', 'canada', 'germany', 'france']
for i in range(len(country)) :
if country[i] == 'canada' :
break
print(country[i])
#출력값
korea
japan
china
조건 함수 if 문을 추가하였다.
만약 <반복 조건> (country[i] == 'canada') 에 만족하게 되면 break 반복문을 정지하게 하였다.
<반복 변수> i 가 3이 될 경우,
country[3] = 'canada'가 출력이 되며 조건문을 만족하게 된다.
만족을 하게 되면 break 제어문이 실행되어 반복문이 종료.
즉, 출력이 종료되어 country[2] = 'china' 까지만 출력이 된다.
위 함수에 continue 함수까지 추가해보자 !
country = ['korea', 'japan', 'china', 'canada', 'germany', 'france']
for i in range(len(country)) :
if country[i] == 'china' :
continue
elif country[i] == 'france':
break
print(country[i])
#출력값
korea
japan
canada
germany
이번에는 if 조건문에 elif 까지 추가하여 두 가지 조건을 추가하였다.
<반복 조건 1> : country[i] == 'china' 일 경우, continue 제어문을 수행
country[2] = 'china' 이므로,
i 의 값이 2가 될 경우 continue 제어문이 수행된다.
코드는 위에서 아래 순으로 수행이 된다.
다만, continue 제어문이 수행될 경우, continue 하단의 코드를 수행하는 것이 아닌 다음 <코드> 순서로 넘어간다.
즉, i의 값이 순차적으로 0, 1, 2, ...5 까지 순차적으로 수행이 되는데,
i == 2 값이 되면, 밑에 print(country[2])의 출력값인 'china' 를 출력하지 않고,
반복문 처음으로 넘어가 i = 3 값이 입력 된 후 print(country[3]) 의 출력값인 'canada'를 출력하게 된다.
<반복 조건 2> : country[i] == 'france' 일 경우, break 제어문을 수행
위의 break 제어문 설명과 같이 country[5] == 'france' 값을 출력하지 않고 반복문을 종료하게 된다.
✏️while 문의 continue, break 예를 알아보자!
continue와 break 없이 코딩을 작성하였다.
A = 0
while True :
A = A + 1
print(A)
#출력값
1
2
3
4
...
위와 같이 while 반복문을 작성할 경우,
출력값은 무한으로 1씩 계속 증가할 것이다.
위 코드에 break 제어문을 추가하였다.
A = 0
while True :
A = A + 1
print(A)
if A > 5 :
break
#출력값
1
2
3
4
5
6
if 조건문을 같이 사용하였다.
<반복 조건> A의 값이 5 초과이면 break 제어문이 수행되어 반복문이 종료되게 하였다.
A에 0값을 입력하면 0 + 1 = 1이 출력,
1 값이 입력되면 1 + 1 = 2,
5 값이 입력되면 5 + 1 = 6이 출력
A 는 반복문이 1회 반복되면 1씩 증가하도록 되어있다.
다만, <반복 조건>의 A의 값이 5 초과면 종료이기 때문에
A에 6값이 입력되면 종료되어,
6 + 1 = 7의 값은 출력되지 않았다.
A = 0
while True :
A = A + 1
if A == 3 :
continue
elif A > 5 :
break
print(A)
#출력값
1
2
4
5
이번엔 if, elif 조건문을 사용하여 continue 제어문을 추가하였다.
<조건 1> A == 3일 경우, continue 제어문이 수행되어 다음 반복을 수행
A 에 2 값이 입력될 경우, A + 1로 인하여 3의 값이 기입된다.
단, continue 제어문으로 인하여 print(A) 까지 수행되지 않고 다음 반복문으로 넘어가기 때문에 3 값은 생략되고 다음 반복문의 출력값인 4가 출력된다.
<조건 2> A > 5일 경우, 반복문 종료
A의 값이 4가 입력이 될 경우,
A = 4 + 1인 5 값이 기입이 된다.
그래서 5의 값은 출력이 된다.
단, 5의 값이 입력이 될 경우,
A = 5 + 1이 됨으로,
elif의 조건을 만족하게 되어 6의 값을 출력하지 않고 반복문 수행을 종료 하게 된다.
조건문과 반복문은 가장 유용하게 사용되며,
혼합하여 사용할 경우,
여러 기능을 구현 또는 단축을 할 수 있음으로 수행되는 원리와 구조를 잘 파악하고 익히는게 좋다.