IFP 겨울방학 스터디(Unit 18)

유재우·2022년 1월 16일
0

IFP-겨울방학 스터디

목록 보기
16/38

break, continue로 반복문 제어하기

break

  • break는 반복문을 끝낸다.
예)
i = 0
while True:    # 무한 루프
    print(i)
    i += 1          
    if i == 10:    
        break       # 반복문을 끝냄. while의 제어흐름을 벗어남
  • 이런 식으로 주로 사용을 한다.
  • for문 또한 같은 용도로 사용가능하다.

continue

  • continue를 사용하여 일부 코드를 실행하지 않고 건너뛴다.
for i in range(10):      
    if i % 2 == 0:         
        continue           # 아래 코드를 실행하지 않고 건너뜀
    print(i)
# i가 짝수일 때에는 i가 출력되지않고 건너뛴다.

18.4 퀴즈

  • 다음 중 break와 continue에 대한 설명으로 올바른 것을 모두 고르세요.
  1. break는 if 조건문을 끝낸다.
  2. break는 while 반복문을 끝낸다.
  3. break는 for range 반복문에 사용할 수 없다.
  4. continue는 코드를 실행하지 않고 건너뛰며 루프를 중단하지 않는다.
  5. continue는 코드를 실행하지 않고 건너뛴 뒤 루프를 중단한다.

정답) 2, 4
풀이)
2 - break는 while 반복문을 끝내므로 정답이다.
4 - continue는 뒤의 코드를 실행하지 않고 건너뛰며 루프를 중단하지 않으므로 정답이다.

  • 다음 코드로 1부터 10까지 출력하면서 3의 배수는 제외하려고 할 때 밑줄 부분에 들어가야 할 코드를 고르세요.
for i in range(1, 11):
    _______________________            
        ________________________            
    print(i)
1. if i % 3 == 0:
       break
2. if i % 3 == 0:
       continue
3. if i % 3 != 0:
       break
4. if i % 3 != 0:
       continue
5. if i % 3 == 1:
       print(i)

정답) 2
풀이) 3의 배수만 제외하고 계속 반복문이 실행되어야하기 때문에 continue를 사용한다.

  • 다음 코드로 30부터 10까지 출력할 때 밑줄 부분에 들어가야 할 코드를 고르세요.
i = 30 
while True:
    print(i)
    _______________________            
        ________________________      
    i -= 1
1. if i != 10:
       break
2. if i != 10:
       continue
3. if i == 10:
       break
4. if i == 10:
       continue
5. if i <= 30:
       continue

정답) 3
풀이) 10까지 출력하고 끝나야하기 때문에 break문을 사용하고 i가 먼저 출력이 되고나서 조건이 걸리기 때문에 조건식이 i == 10이 정답이다.

18.5 연습문제: 3으로 끝나는 숫자만 출력하기

  • 다음 소스 코드를 완성하여 0과 73 사이의 숫자 중 3으로 끝나는 숫자만 출력되게 만드세요.
i = 0
while True:
    ①_______________________            
        ________________________
        ________________________ 
    ②_______________________            
        ________________________   
    print(i, end=' ')
    i += 1
결과)
3 13 23 33 43 53 63 73

정답)
①
if i % 10 != 3:
     i += 1
    continue
②
if i > 73:
    break
풀이)
① 끝이 3으로 끝나는 숫자를 출력하려면 우선 조건식을  i % 10 == 3 으로 작성해야하지만 밑에서 이미 출력문이 있기 때문에 끝이 3으로 끝나지 않으면 continue로 print문을 생략하게 작성을 해야한다. 
② 73까지 출력을 해야하니깐 73보다 클 때 반복을 중단해야하므로 break를 이용해서 작성해야한다.

18.6 심사문제: 두 수 사이의 숫자 중 3으로 끝나지 않는 숫자 출력하기

  • 표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~200, 두 번째 입력 값의 범위는 10~200이며 첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다). 다음 소스 코드를 완성하여 첫 번째 정수와 두 번째 정수 사이의 숫자 중 3으로 끝나지 않는 숫자가 출력되게 만드세요. 정답에 코드를 작성할 때는 while True:에 맞춰서 들여쓰기를 해주세요.
start, stop = map(int, input().split())
i = start
while True:
_____________________
_____________________
_____________________
_____________________
_____________________
    print(i, end=' ')
    i += 1
예)
입력) 1 20
결과) 1 2 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20

    if i % 10 == 3:
        i += 1
        continue
    if i > stop:
        break
풀이) 위 연습문제와 반대로 끝자리가 3이 나오면 출력되지 않게 해야하므로 10으로 나눠 나머지가 3일 때 출력을 생략해야하고 stop 변수보다 i가 크면 반복문을 끝내게 작성한다.
profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글

관련 채용 정보