✍ 조건에 의한 반복문
- 조건에 만족하면 반복 실행, 그렇지 않으면 반복 중단
- ex) 매일 아침 기상 알람, 게임 반복 실행, 타이머
- 조건에 의한 반복은 while 문 주로 사용
1. while문

# n이 10 이하이면 반복 실행
endNum=10
n=0
while n <= endNum:
print(n)
n+=1
# 7단 구구단 출력
i=1
while i <10:
result= 7 * i
print('{} * {} = {}' .format(7, i, result))
i +=1
# 7 * 1 = 7
# 7 * 2 = 14
# 7 * 3 = 21
# 7 * 4 = 28
# 7 * 5 = 35
# 7 * 6 = 42
# 7 * 7 = 49
# 7 * 8 = 56
# 7 * 9 = 63
✔ 실습 1
- 1부터 100까지의 정수 중 2의 배수와 3의 배수를 구분해서 출력

✔ 실습 2
- while문을 이용해서 사용자가 입력한 구구단 출력


✔ 실습 3
- 자동차 바퀴가 한번 구를 때마다 0.15mm씩 마모된다고 한다.
- 현대의 바퀴 두께가 30mm
- 최소 운행 가능 바퀴 두께가 20mm
- 앞으로 구를 수 있는 횟수는?
currentThickness=30
rotationCount=0
## removeThickness= 0.15
while currentThickness >= 20:
rotationCount += 1
currentThickness-= removeThickness
safeRotationCount=rotationCount-1
print('운행 가능 횟수: {}' .format(safeRotationCount))
# 운행 가능 횟수: 66
2. 무한루프
- 반복문을 빠져나올 수 없는 경우를 무한 루프라고 함
- while문에서 조건식의 결과가 항상 True인 경우
# 무한루프
n=1
while n < 10:
print('Hello')
# 9번만 실행하는 경우
n=1
while n < 10:
print('Hello')
n += 1
1) 논리형 데이터에서 무한루프
# 무한루프
flag= True
num=0
sum=0
while flag:
num+=1
sum += num
print('{}까지의 합은 {}입니다'.format(num,sum))
# 위의 무한 루프를 중단하기 위해, while문에 if문 추가
flag= True
num=0
sum=0
while flag:
num+=1
sum += num
print('{}까지의 합은 {}입니다'.format(num,sum))
if sum>=1000:
flag=False
✔ 실습
- 하루에 독감으로 병원에 내방하는 환자수가 50명에서 100명 사이일 때, 누적 독감 환자 수가 최초 10,000명을 넘는 날짜를 구해보자

3. 반복문 제어
1) continue 키워드
- 반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어감


2) else 키워드
- else의 실행문은 반복문이 종료된 후 실행


✔ 실습
- 1부터 100까지의 정수 중 3과 7의 공배수와 최소 공배수 출력

3) break 키워드
- 반복 실행 중 break를 만나면 반복문을 빠져나옴

num=0
while True:
print('Hello')
num+=1
if num>=5:
break
print('The End')
# Hello
# Hello
# Hello
# Hello
# Hello
# The End
✔ 실습 1
- 1부터 100까지 정수를 더할 때, 합계가 넘는 최최의 정수 찾기
sum=0
searchNum=0
for i in range (100):
sum += i
if sum >100:
searchNum = i
break
print('searchNum: {}' .format(searchNum))
# searchNum: 14
✔ 실습 2
- 10의 팩터리얼 (10!)을 계산하는 과정에서 결과값이 50을 넘을 때의 숫자 구하기
result=1
num=0
for i in range(1,10):
result *= i
if result>50:
num = i
break
print('num: {}, result:{}' .format(num, result))
# num: 5, result:120
✔ 실습 3
- 새끼 강아지 체중이 2.2kg가 넘으면 이유식 중단
- 한번 이유식을 먹을 때 체중이 70g 증가
- 현재 체중은 800g
- 예상되는 이유식 날짜를 구하자
nowWeight=800
maxWeight=2200
addWeight=70
date=1
while True:
if nowWeight >= maxWeight:
break
date+=1
nowWeight += addWeight
print('이유식 중단날짜: {}' .format(date))
# 이유식 중단날짜: 21