블로그 이미지
김고노

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2018. 3. 26. 14:27 파이썬 복습

While문 이란?


반복해서 문장을 수행해야 할 경우 사용하는 반복문이다.



while문의 기본구조


while 조건문:

    수행할 문장1

    수행할 문장2

    수행할 문장3

    ...



while문은 조건문이 참인 동안에 while문 아래에 속하는 문장들이 반복수행됨.



'기범은 열번 때리면 뻗어버린다' 를 while 문으로 만들어보자.



>>>gibeomHit = 0       ←기범을 때린 횟수

>>>while gibeomHit < 10:   ←기범을 때린 횟수가 10보다 작은 동안 반복

. . .          gibeomHit = gibeomHit+1   ←기범을 때린 횟수 1씩 증가

. . .          print("기범을 %d번 때렸다 ㅋㅋ" % gibeomHit)

. . .          if gibeomHit == 10    ←기범을 열 번 때리면

. . .              print("기범은 쓰러져버렸다")

. . .

기범을 1번 때렸다 ㅋㅋ

기범을 2번 때렸다 ㅋㅋ

기범을 3번 때렸다 ㅋㅋ

기범을 4번 때렸다 ㅋㅋ

기범을 5번 때렸다 ㅋㅋ

기범을 6번 때렸다 ㅋㅋ

기범을 7번 때렸다 ㅋㅋ

기범을 8번 때렸다 ㅋㅋ

기범을 9번 때렸다 ㅋㅋ

기범을 10번 때렸다 ㅋㅋ

기범은 쓰러져버렸다


gibeomHit가 10이되면 "기범은 쓰러져버렸다" 문장을 출력하고


gibeomHit < 10 이라는 조건문이 거짓이되어 while 문을 빠져나감.



※위의 진한 글자는 {0}   .format(gibeomHit) 고급문자열 포매팅으로 해도되는거 확인.   






while문 직접 만들기



여러 가지 선택지중 하나를 선택해서 입력받는 예제를 만드려고 한다면


일단 선택지를 보기편하게 여러줄의 문자열로 만들어보자


>>>prompt = """

. . . 1. 기범이 건드리기

. . . 2. 기범이 꼬집기

. . . 3. 기범이 발로차기

. . . 4. 종료

. . .

. . . Enter number: """


선택지를 만든후에 while 문을 이용해보자


>>>number = 0    ←번호를 입력받을 변수(설정안해놓으면 밑에 조건문에서 에러) 

>>>while number != 4:    ← 입력받은 번호가 4가 아닌 동안 반복

. . .          print(prompt)

. . .          number = int(input())

. . .

1. 기범이 건드리기

2. 기범이 꼬집기

3. 기범이 발로차기

4. 종료


Enter number:



while 문을 보면 4가 아닌 동안 prompt를 출력하고 사용자로부터 번호를 입력받음


사용자가 4라는 값을 입력하지 않으면 계속 prompt를 출력함.




Enter number:

4

>>>



4쓰면 조건문이 거짓이 되어 while 빠져나감.



★ number = int(input())  이 문장은 사용자로부터 입력을 받는 부분이고 입력받은 숫자를 변수 number 에 대입함이라고만 알고 있자.




while 문 강제로 빠져나가기


break문 사용하기


>>>gibeomHP = 5

>>>attackDamage = 1

>>>while attackDamage:

. . .          print("기범에게 공격")

. . .          gibeomHP = gibeomHP-1

. . .          print("기범의 피가 %d 입니다." % gibeomHP)

. . .          if not gibeomHP:

. . .              print("기범의 피가 0입니다.")

. . .              break

. . .



위를 보면 attackDamage 가 1로 고정되있고 조건문에서 0이아니기 때문에 항상참임.


그래서 무한히 반복되는 무한루프를 반복함. 기범의 피가 마이너스로 가도 무한으로 계속 두들겨 맞음.


위처럼 break 를 써줘야 while문을 빠져나가게 됨.




Ctrl + C 를 눌러도 빠져나간다

'파이썬 복습' 카테고리의 다른 글

3/27 for문  (0) 2018.03.27
3/26 while문(2/2)  (0) 2018.03.26
3/24 if 문 (2/2)  (0) 2018.03.24
3/ 23 if 문 (1/2)  (0) 2018.03.23
3/23 연습문제  (0) 2018.03.23
posted by 김고노