파이썬 제어문 (반복문 for문, while문)
(파이썬에서는 switch구문이 지원되지 않음)
for문 (for~ in)
지정된 범위만큼 반복합니다.
형식은 다음과 같습니다.
for <반복 변수> in <반복 범위> :
<코드 블럭>
간단한 예시 코드입니다.
for a in [1,2,3]:
print(a)
print(a*2)
왼쪽과 같이 잘 계산되어 나옵니다.
반복 범위는 어떻게 정할까요?
위의 예시와 같이 리스트로 정할 수도 있고, range()함수를 이용할 수도 있습니다.
range함수를 이용할 경우에는
range(start, stop, step)
위와 같은 형식으로 사용합니다.
start=범위 시작 지점
stop=범위 끝 지점
step=증감하는 범위
즉, stop전까지 start에서부터 step만큼 증감하는 것입니다.
여기서 주의할 점은 range()함수로 만들어진 숫자의 리스트를 출력하려면 list()함수를 이용해서
리스트타입으로 변환시켜야 한다는 점입니다.
무슨 말이냐고요?
<< 리스트 타입이 아닐 때는 출력이 되지 않습니다.
<<리스트 타입으로 만들어줘야 리스트로 출력됩니다.
당연한 것이지만 증감이 위와 같이 1일때는 1을 생략해도 상관없습니다.
(또한 start지점이 0일 때는 0도 생략가능합니다.)
그렇다면 0부터 100까지 숫자 중, 17씩 증감하는 숫자를 리스트로 출력해볼까요?
print(list(range(0,100,17)))
결과도 잘 출력되는 것을 확인할 수 있습니다.
[0, 17, 34, 51, 68, 85]
중첩 for문
#중첩 for문의 구조
for<반복 변수1> in <반복 범위 1>
for<반복 변수 2> in <반복 범위2>
<코드블럭>
중첩 for문의 구조는 위와 같습니다.
while문
조건에 따라 반복 여부를 결정함.
(반복 범위가 정해진 경우에는 주로 for문을 사용/ 범위가 없이 조건에 따라 결정할때는 while문)
while문의 구조는 다음과 같습니다.
while <조건문>:
<코드 블럭>
조건문을 만족하면 블록을 계속 수행하고, 만족하지 않으면 실행하지 않고 while문을 나오게 된다.
만약 무조건 반복을 하게 할거면,
while True:
<코드 블럭>
형식으로 코드를 짜면 되는데, 조건문이 항상 참일 때에는 코드가 무한반복 된다는 점을 주의해야 한다.
그렇기 때문에 반복문을 제어하는 break와 continue를 사용해야 한다.
break는 반복문을 빠져나오고,
continue는 다음 반복을 실행하게 한다.