TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] 파이썬기초: 제어문 - while문

by 기록자_Recordian 2024. 6. 16.
728x90
반응형
시작에 앞서
해당 내용은 '<Do it! 점프 투 파이썬> 박응용 지음. 이지스 퍼블리싱' 을 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다.

제어문

 

[제어문 종류]


while문 (반복문)의 기본 구조

 

while문은 조건문이 참인 동안에 while문 아래의 문장이 반복해서 수행된다.

<while문의 기본 구조>
while 조건문:
    수행할 문장1
    수행할 문장2
    수행할 문장3
    ....

 

예를들어 '열 번 찍어 안 넘어가는 나무 없다'는 속담을 파이썬 프로그램으로 만든다면

▶ treeHit가 10보다 작은 동안에 while문 안의 문장을 계속 수행하고, 문장 반복시 마다 treeHit가 1씩 추가 되며, 나무를 treeHit 번만큼 찍었음을 알리는 문장을 출력하고, treeHit 가 10이 되면 '나무가 넘어갑니다' 라는 문장을 출력하며 종료된다. (treeHit < 10 조건문이 거짓이 되므로)


while문 만들기

 

먼저 아래와 같이 여러 줄짜리 문자열을 입력하고,

number 변수에 0을 먼저 대입하고,

number가 4가 아닌 동안 prompt를 출력하고 사용자로부터 번호를 입력받는다는 while문을 작성한다.

4가 아닌 번호를 입력하면 계속 반복된다.

 

4를 입력하면 해당 반복문이 종료된다.


while문 강제로 빠져나가기 (break문)

 

break문은 while문을 강제로 멈추게 한다.

 

커피 자판기를 파이썬 프로그램으로 만들어보면

▶ money가 300으로 고정되어 있으므로 while money: 에서 조건문인 money는 0이 아니므로 항상 참(무한 푸르)

▶ while문 수행 시 마다 coffee 는 1잔씩 줄어든다.

▶ coffee가 0이 되면 '커피가 모두 떨어졌습니다.' 가 수행되고 break문이 호출되어 while문을 빠져나가게 된다.

 

이를 실제 작동 과정과 비슷하게 만들어보면

빈 칸에 숫자를 입력하면

숫자에 따라 설정한 값이 나오고, 설정한 커피잔(5잔)을 다 팔면 while문이 종료된다.


while문의 맨 처음으로 돌아가기 (continue문)

 

while문을 빠져나가지 않고 맨 처음(조건문)으로 다시 돌아가게 만들고 싶은 경우 continue문을 사용하면 된다.

 

 

▶ a가 짝수이면 while문의 맨 처음으로 돌아가게 되어 결과적으로는 홀수만 출력한다.

 

Q. 1부터 10까지의 숫자 중에서 3의 배수를 뺀 나머지 값 출력하기

▶ if a % 3 == 0: continue

만약 a를 3으로 나눈 값이 0일 경우 처음으로 돌아간다.

 

Q. while문을 사용하여 1부터 1000까지의 자연수 중 3의 배수의 합 구하기

[코드 및 설명]
<코드>
result = 0
i = 1
while i <= 1000
    if i % 3 == 0:
        result += i
    i += 1

print(result)

<코드 설명>

▶ result = 0 : result 변수를 0으로 초기화. 3의 배수의 합을 저장하는 데 사용
▶ i = 1: i 변수를 1로 초기화. 1부터 1000까지의 자연수를 반복하는 데 사용.
▶ while i <= 1000: : i가 1000보다 작거나 같을 때까지 while 루프가 반복. 1부터 1000까지의 모든 자연수를 반복.
 if i % 3 == 0: :i를 3으로 나눈 나머지가 0인지 확인. 나머지가 0이면 i는 3의 배수.
▶ result += i : i가 3의 배수일 때, i의 값을 result에 더한다. 3의 배수의 합을 계산하기 위함.
▶ i += 1 : i를 1씩 증가시켜 다음 숫자로 이동

 

Q. while문을 사용하여 별(*)이 1개부터 5개까지 증가하는 프로그램 작성


무한루프

 

무한 루프는 무한히 반복한다는 의미이다. (while문의 조건문이 True 이므로 항상 참이 되는 문장)


다음글

 

[파이썬] 파이썬기초: 제어문 - for문

시작에 앞서해당 내용은 ' 박응용 지음. 이지스 퍼블리싱' 을 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다.제어문 [제어문 종류]

puppy-foot-it.tistory.com

 

728x90
반응형