파이썬 break 예제 - paisseon break yeje

break문과 continue문

앞서 설명한

for문 : 순회할 객체의 마지막 항목까지 반복

while문 : bool 값을 반환하는 조건식이 False를 반환할 때까지 반복

이외에

break문 : 논리적으로 반복문을 빠져나갈 때 사용. 그 자리에서 바로 반복문이 종료됨

continue문 : 이후 코드는 건너뛰고 반복문을 이어서 계속 실행할 때 사용

break문 예제

사용자의 입력값이 문자열 "q"이면 반복문을 빠져나오는 코드

>>> answer="" >>> while True: answer=input("명령을 입력하세요.\n'q'를 입력하면 프로그램이 종료됩니다.:") if answer=="q": break print("'{0}'를 입력하셨습니다.".format(answer)) >>> print("프로그램을 종료합니다...")

변수 answer는 공백 문자열("")로 초기화

while문에서는 가장먼저 input() 함수를 이용해 사용자가 입력한 문자열을 변수 answer에 저장

이때 저장된 answer의 값이 q이면 break문에 의해 while문에서 벗어남

결과 출력

입력된 값이 q가 아닐경우 블록 내의 print()함수 실행

q입력시 결과

명령을 입력하세요. 'q'를 입력하면 프로그램이 종료됩니다.:q 프로그램을 종료합니다...

a입력시 결과

명령을 입력하세요. 'q'를 입력하면 프로그램이 종료됩니다.:a 'a'를 입력하셨습니다.

str.format()함수의 첫 번째 인자 answer의 값이 {0}에 대입

continue문 예제

1부터 10까지 저장되어 있는 리스트 객체에서 3의 배수를 제외한 합을 구하는 코드

>>> numlist=[1,2,3,4,5,6,7,8,9,10] >>> total=0 >>> for n in numlist: if n%3==0: continue total+=n >>> print("3의 배수를 제외한 총합: {0}".format(total)) 3의 배수를 제외한 총합: 37

numlist : 1부터 10까지 정수를 갖는 리스트

total : 합을 누적해서 저장할 정수형 변수

for문에서 numlist의 항목은 차례대로 변수n에 대입

n의 값이 3의 배수인지를 검사하기 위해 나머지(%)연산자 사용

변수 n의 값이 3의 배수일때 -> 나머지 블록은 건너뛰고 for문으로 제어를 옮김

변수 n의 값이 3의 배수가 아닐때 -> 변수 total에 값 누적

더 이상 접근할 수 없는 항목이 없는 경우 for문을 빠져나와 print()함수 호출

str.format() 함수의 첫 번째 인자 total의 값이 {0}에 대입

for문과 while문을 활용해 값이 반복되는 프로그램 만들기(트리만들기)

Step 1 풀기 for i in range(1,5): print("*" * i)

for 문에서 range객체를 이용하여 변수 i의 반복 횟수 설정

4번 반복이기 때문에 시작은 1, 종료는 5를 입력 ->반복은 4번 실행됨

print() 문에서는 반복해서 출력해야 하므로 반복 제어변수 i를 사용

* ** *** ****

for루프로 작성했던 코드를 while루프로 변경하기

i = 1 while i <= 4: print("*" *i) i = i+1

while루프를 빠져나가는 조건 설정 필요 ->변수를 선언해야 함

(위의 코드를 주석 처리 시, 블록 지정 후 ctrl+/ 단축키로 주석처리)

변수 i의 선언

반복이 4번이므로 i를 1로 시작

while 문에서 i를 4와 비교하는 코드 작성 -> 반복적인 수 i에 대한 변이를 반드시 체크해야 함

i = i+1 처럼 i값을 증가시키는 코드가 없으면 무한루프 발생

* ** *** ****

Step 2의 경우, Step 1 의 결과를 두번 반복해서 출력

Step 2 풀기 for i in range(1,3): for k in range(1,5): print("*" * k)

중첩된 for루프 사용

range 객체를 이용하여 변수 i의 반복 횟수 설정

전체 루프는 두 번 반복되고, 내부 루프는 4번 반복된다

* ** *** **** * ** *** ****

for루프 대신에 while루프를 사용해서 코드 작성

i, k = 1, 1 while i <= 2: while k <= 4: print("*" * k) k = k + 1 i = i + 1

바깥 루프를 제어하는 i와 안쪽 루프를 제어하는 k 만들기

실행 결과

* ** *** ****

k를 초기화 해주는 구문이 없기 때문에 틀린값이 나온다

k=1로 초기화 해주는 코드를 추가로 작성

i, k = 1, 1 while i <= 2: while k <= 4: print("*" * k) k = k + 1 i = i + 1 k=1* ** *** **** * ** *** ****

break와 continue는 제어문인 반복문 (for, while)을 사용하는 경우 사용하게 됩니다.

무한 반복을 수행하다가 원하는 순간에 반복을 중지하고 싶다거나 특정 순간은 실행하지않고 넘기는 경우 사용합니다.

Break

예를 들어 1~100까지 숫자를 반복하는데 30을 만나는 경우 반복을 중지하고 프로그램을 종료하게 만들어보겠습니다.

# break # 1 ~ 100까지 반복 수행하다가 30에서 break를 수행하여 반복을 중지하고 종료하기 for i in range(1, 101) : if i > 30 : break print(i)
break 예제

break문은 반복작업 중에 중간에 멈추고 루프 밖으로 빠져나온다는 의미입니다.

간단하게 예를 들어보죠.

우리는 공장에서 무수히 많은 반복작업을 하다가 점심시간이 되면 다 멈추고

점심먹으러 가지요? 네

간단하게 그렇게 생각하시면 됩니다. 무한히 많은 반복작업 중에

그만 두고 점심이나 쉬기 위해서 중지하는 것

그것이 바로 Break 구문입니다.

Continue

그럼 이번에는 건너뛰기를 한번 해보겠습니다.

우리는 1 ~ 50까지 출력하려고 했지만,

생각해보니 짝수 혹은 홀수만 찍고 싶다는 생각이 들었다고 생각해봅시다.

방법은 여러가지가 있을 수 있습니다.

# 1 ~ 50 에서 짝수만 출력하시오. #case 1 for i in range(1,51) : i+=1 #짝수만 출력 print(i) #case 2 for i in range(1,51/2): i*=2 #짝수만 출력 print(i) #case 3 for i in range(1,51): if i%2 == 1: continue; print(i)
continue 예제

continue는 break와 다르게 작업을 중지하지 않습니다. 

continue도 실사례를 적용해서 한번 얘기해볼까요?

공장에서 불량품을 제외하는 작업을 진행한다고 생각해봅시다.

정상인 제품은 그냥 패스하고 불량품이 있는 경우 해당 라인에서 제거한다면 Continue와 같다고 느껴지시나요? 

반복전인 라인은 계속 흐르면서 불량품만 빼고 계속 작업이 진행된다는 것은 Continue를 사용하여 해당 불량품을 뺀 나머지를 생산한다고 생각하면 쉽게 느껴질 것입니다.

여기까지 break와 continue 에 대해 알아봤습니다.

다음은 데이터 유형과 주요 함수들에 대해 알아보겠습니다.

Toplist

최신 우편물

태그