3장 while문

Kiyong Lee·2021년 4월 11일
0

파이썬

목록 보기
6/21
post-custom-banner

while문

while문의 기본 구조

반복해서 문장을 수행해야 할 경우, while문을 사용한다 그래서 while문을 반복문이라고 부른다잇!

while문의 기본 구조는

while 조건문 :
문장
문장
...

10초뒤 폭탄이 터진다고 하면

bomb = 10

while bomb > 0 :
print('폭탄이 %s초뒤 터짐' %bomb)
bomb = bomb-1

if bomb == 0 :
print('펑')

이렇게 쓸 수 있다.

결과는

폭탄이 10초뒤 터짐
...
폭탄이 1초뒤터짐

이렇게 나옴

뒤에 : 쓰는 게 가장 적응 안되네 ㅋㅋ;;

while문 만들기

여러가지 선택지 중 하나를 선택해서 입력받는 예제를 만들어 보자

prompt = """

  1. add
  2. del
  3. list
  4. quit

enter number :

"""

문자열 때 배운 """ """ 사용이다

number에 0을 대입 한 후

number=0
while number !=4 :
print(prompt)
number=int(input())

을 하면 4를 입력할 때 까지 계속 while문이 실행된다

int(input())은 사용자의 숫자를 입력 받는 거라고 알고 있자

while문 강제로 빠져나가기

if문을 쓰며 언급한 break를 사용한다

스타크래프트에서 유닛을 생산하기 위해 미네랄을 캐는데, 미네랄이 부족하면

"not enough minerals가 뜬다" 그걸 띄어보겠다

mineral = 100
army = 50

while army :
print("병력생산중입니다")
mineral -= 8
if mineral<8 :
print("not enough minerals")
break

army는 현재 내 인구수고 미네랄은 100이 있다.

커멘터센터에서 scv를 뽑고, scv하나당 미네랄이 8씩 소모된다면
13번째 scv를 생산할 때 not enough minerals가 뜬다

만약 break가 안되면 계속 무한루프가 돈다

while문 맨 처음으로 돌아가기

인간은 누구나 회귀본능이 있다

그리고 기본, 근본, 처음이 가장 중요한 만큼 누구나 다시 처음으로 돌아가고 싶을 때가 있지 않은가?

그럴 때 사용하는 것이 continue문이다

a=0

while a<10 :
a+=1
if a%2==0 :
print(a)

2,4,6...

a=0

while a<10 :
a+=1
if a%2==0 : continue
print(a)

1,3,5...

첫 번째 while문과 두 번째의 차이는 continue유무와 print(a)의 들여쓰기 수준이다

첫 번째 while문은 while문 안에 if문이 있고 print(a)가 if문에 종속된다

a=1이되고 1/2의 나머지는 0이 아니므로 print하지 않고 a=2가 됨
그래서 a는 2,4, ... 이렇게 짝수가 나오게 된다

두 번째 while문은 print(a)도 while문에 종속되는데

a/2의 나머지가 0일 경우, 다시 while문으로 돌아가라는 의미가 되기 때문에 홀수들을 출력한다

continue 하나로 정답이 이렇게 바뀌었다

그리고 continue가 없는 첫 번째 while문은 a/2의 나머지가 0일 경우 a를 출력하는 것이기 때문에,
print(a)가 if에 종속된다

다음은 for문 ㄱㄱ

profile
ISTJ인 K-개발자
post-custom-banner

0개의 댓글