while문은 앞서 기록한 for문과 같이 반복적인 작업을 수행하기 위하여 사용하는
반복문이다.
같은 반복문인 for문과의 가장 큰 차이점은
while문은 <특정한 조건>을 충족하는 동안만 실행할 때 주로 사용한다.
앞서 반복문인 for문과 범위지정의 range를 사용하여
1부터 100까지의 정수를 출력하고자 명령을
for n in range(1,101):
print(n)
을 통해 수행시켰다.
해당 명령이 가진 뜻은 n이라는 변수에 1부터 101-1(range 범위의 마지막은 -1)까지의
정수를 반복시켜 집어넣은 뒤 출력하라는 뜻이다.
반면에 while문으로 해당 명령을 수행하려면 어떻게 해야 할까?
while문과 for문의 가장 큰 차이는 <특정 조건을 충족>시키는 동안만
명령을 수행하라는 것이였다.
그럼 특정 조건이라 함은 <n이라는 변수가 100보다 같거나 작을 때까지>의 조건을 충족시킬 때마다 n이라는 변수에 정수를 하나씩 집어넣은 뒤 출력하라는 말과 동일하다.
다음을 통해 알아보자.
먼저, n이라는 변수를 지정해주자.
n은 지금부터 0으로 저장되어 있다.
while 을 통해 <n이라는 변수가 100보다 같거나 작을 때까지>의 조건을 충족시킬 때마다
라고 설정해 주었다.
이 상태로 엔터를 누르게 되면,
무한정 n이 계속해서 출력되는 상황을 볼 수 있다.
이 때엔 당황하지 말고 Crtl + C키를 눌러 강제로 출력을 멈추게 하자.
이유는, n이 100보다 작거나 같을 때 까지 출력만 시킨 것으로
앞서 말한 "n이라는 변수에 정수를 하나씩 집어넣은 뒤 출력하라"는 명령이 빠졌기 때문이다.
이를 보완하고자 한다면,
n = n+1이라는 추가 명령문을 while 문 안에 삽입 해 주었다.
해당 명령을 수행하는 컴퓨터 입장에서 보자면,
1. n은 0이다.
2. n이 100보다 작거나 같다면, n을 출력하자.
3. 지금 n은 0이다.
4. 0은 100보다 작다.
5. 출력 0
6. 다음 n은 0에 1을 더하자.
7. n은 1이다.
8. n이 100보다 작거나 같다면, n을 출력하자.
9. 지금 n은 1이다.
10. 1은 100보다 작다.
11. 출력 1
...
이런 메카니즘을 통하게 된다.
'파이썬' 카테고리의 다른 글
[파이썬] print함수 %s와 for문 (0) | 2021.08.10 |
---|---|
[파이썬] for문 (0) | 2021.08.10 |
[파이썬] if~else문 (0) | 2021.08.10 |
[파이썬] if문 (0) | 2021.08.10 |
[파이썬] 리스트 (0) | 2021.08.10 |