while문

애늙은이·2023년 7월 27일
0
post-thumbnail
post-custom-banner

이번 시간에는 for문에 이어 반복 작업을 할 때 유용한 while문에 대해 알아보겠습니다.

🔨 while문의 기본 구조

while문의 기본 구조는 다음과 같습니다.

while 조건:
  실행문

while문은 조건이 참일 때까지 실행문을 수행합니다. 즉, 조건이 거짓이 될 때는 while문이 종료되는 거죠. 코드를 통해 살펴보도록 하겠습니다.

i = 0

while i < 5:
  print(i)
  i += 1
  
# 결과
# 0
# 1
# 2
# 3
# 4

위의 코드의 while문은 i < 5가 참일 때까지 실행문을 수행합니다. 즉, i를 출력하고 i에 1을 더하는 것을 반복하는 것이죠. i가 4가 되면, i값인 4를 출력하고 i에 1을 더해 5로 만듭니다. 그리고 다음 회차에서는 i < 5인 조건이 거짓이 되기에 while문이 종료되죠.

만약 i += 1이라는 코드가 없으면 어떻게 될까요?

i = 0

while i < 5:
  print(i)

# 결과: 0이 무한으로 출력되니 ctrl+c로 중단시켜야 합니다.

i값에 변화가 없기 때문에 조건이 항상 참이 되어 print(i)가 계속 실행되게 됩니다. 이처럼 while문을 작성할 경우, 의도한 때에 while문을 벗어날 수 있는 조건을 설정하여 while문이 비효율적으로 반복되지 않게 해야 합니다.

⛔ break와 continue

for문에서 break와 continue 구문을 사용하였듯, while문에서도 같은 역할로 사용이 가능합니다.
특정 조건을 만족할 때, break를 사용하게 되면 while문을 더 이상 진행하지 않고 종료할 수 있습니다.

i = 0
n_sum = 0

while i < 10:
  i += 1
  n_sum += i
  if n_sum > 40:
    break

print(n_sum)

# 결과: 45

위의 코드를 살펴보면, i가 10이 되기 전까지 i를 증가시키고, 이를 n_sum이라는 변수에 더하는 걸 알 수 있습니다. 즉, n_sum은 i들의 합인 셈이죠. 그리고 그 n_sum이 40을 넘기면, break 구문이 실행되어 while문을 강제로 종료시킵니다. 따라서 i가 9일 때, 합이 45로 40을 넘겨 n_sum은 45가 되죠.

continue 구문을 사용하면 특정 조건을 만족할 때, 아래 실행문을 무시하고 다음 회차로 넘어갈 수 있습니다.

i = 0
n_sum = 0

while i < 10:
  i += 1
  
  if i % 2 == 0:
    continue
  n_sum += i

print(n_sum)

# 결과: 25

위의 코드에서 i가 2로 나눈 나머지가 0일 때, 즉 i가 짝수일 때 continue 구문이 실행됩니다. 그렇기에 continue 구문 아래의 n_sum += i가 실행되지 않죠. n_sum의 결과에서 볼 수 있듯, 짝수일 때는 continue 구문이 실행되었기에, 홀수들의 합인 25가 n_sum의 값으로 출력되었습니다.

profile
글쓰는 개발자입니다.
post-custom-banner

0개의 댓글