반복문 (LOOP)반복문은 말 그대로 '어떤 것을 반복할 때 사용하는 구문'이다. 반복문은 코딩을 잘 못했을 경우 '무한 반복' 같은 에러가 날 수 있으므로 주의해야 한다. 반복해서 처리하는 것을 영어로 Loop(루프)라고 하며 '고리'라는 뜻으로 계속 반복을 나타낸다. 루프 코드를 만들 때는 '어떤 조건이 맞으면 계속 반복'하게 만드는 것이다. 조건이 맞지 않으면 루프를 끝낸다. 반복문을 만들때는 for (포; ~동안), while(와일; ~하는 동안)을 사용한다. forLoop라는 문자열을 5번 출력하는 코드를 만든다고 해보자. 5번 입력하든지 복사해서 붙여넣기 할 수도 있다. 그런데 만약 100번, 1000번 출력하려고 할 때 간단하게 할 수 있는 코드가 반복문이다. 만약 100번 출력하도록 코딩하려면 다음과 같이 한다. range(뢰인지)는 '범위'라는 뜻이다. 위 코드의 뜻을 풀이하면 다음과 같다. for(동안 반복하라) i(변수 i)가 in range(범위 100 안에)있을 동안 출력하라(문자열 loop)를 위 코드가 실행하면 다음과 같은 과정을 거쳐 작업이 일어난다.
whilewhile반복문은 '조건'을 넣을 수 있다. 앞에서 만든 for반복문을 while로 바꾸면 다음과 같다. 코드의 뜻은 다음과 같다. 변수i 에 0을 넣어라. while(~하는 동안) i 가 100보다 작다: 출력하라 문자열loop를 i에 넣어라(=) i값에 1을 더해서 위 코드가 실행하면 다음과 같은 과정을 거쳐 작업이 일어난다.
위 예를 보면 for 반복문과 while 반복문은 서로 같다는 것을 알 수 있다. 아무 것이나 사용해도 되지만 경우에 따라서 더 편리하게 코드를 작성할 수 있는 상황이 있다. 어떤 경우에 어떤 반복문을 사용하면 편리한 지는 반복문을 자주 만들다 보면 알게 된다. 무한 반복(infinite loop)세번째 코드가 while i < 100: 코드와 다른 점은 무엇인가? while i < 100: 에는 '조건' (i가 100보다 작으면)이 있는데 while True: 는 조건이 없다. while True: 는 " while 반복문이 True(참)일 동안에" 라는 말이므로, 즉 while 반복 코드가 있으므로 변수i의 값이 1씩 증가하면서 문자열 loop가 무한정으로 출력될 것이다. 이런 상황을 '무한루프, 무한반복'이라고 한다. 코드가 무한루프에 빠지면 안되므로 위 코드에 조건을 넣어주고 그 조건에 해당하면 무한루프에서 빠져 나오도록 해야한다. 무한루프에서 빠져 나오게 할 때 사용하는 명령어는 break(브레이크; 깨다)이다. 앞에서 배웠던 if를 사용하여 다음과 같이 수정해야 한다. 위 코드는 다음과 같이 실행한다.
다음과 같은 코드는 loop가 몇 개 출력될까? 만약 헷갈린다면 다음과 같이 변수 i의 값을 출력하도록 print(i) 코드를 넣어서 출력해보자. in range(3)은 loop를 3개 출력하라는 뜻이고 변수의 값은 2가 되는 것을 알 수 있다. 이번에는 continue라는 명령어를 알아본다. 반복하고 있을 때 어떤 특별한 조건일 때만 그 다음 코드를 실행하고 싶지 않을 때는 continue(컨티뉴; 계속하다)를 사용한다. 예를 들어 아래 코드를 실행하면 다음과 같이 출력될 것이다. 그런데 i의 값이 1일때는 C를 출력하지 않도록 하고 싶다. 이런 경우에 continue를 사용한다. i 값이 1일 때는 continue 명령어가 작동하여 그 다음에 있는 print("C")가 실행되지 않고 다시 for문으로 되돌아가서 계속 반복하게 된다. 그래서 i가 1일 때만 C가 출력되지 않는것이다. 반복문은 여기까지. Wraven... |