[Python] 기타제어문: continue, break, pass

김영환·2021년 2월 15일
0

Python

목록 보기
9/11
post-thumbnail
post-custom-banner

일단.. 프로그래머스에서 19년도 겨울인턴쉽문제인 크레인게임 문제를 풀다가 생긴 어이없는 나의 실수를 기록해보도록해보자..
일단 문제를 대충 설명해보면 2x2배열과 1차원 배열의 비교? 라고 설명하기로하고 기타제어문에 대해서 정리해보독하자.

0. 블록(block)

파이썬에서 중첩 코드 블록은 다른 언어들과 다르게 들여쓰기(indention)으로 구분한다. 한 들여쓰기 당 하나의 레벨의 블록으로 구분한다.

if count == 1:
  print("하나") # 윗줄과 다른 레벨의 블록

1. continue

continue 문을 만나면 반복문의 뒤의 내용을 무시하고 반복문의 다음 스텝으로 넘어간다.

i = 0

while i != 10:
  i += 1
  if i % 2 == 0:
    continue
  print(i)

>> 1,3,5,7,9 출력

2. break

break 문을 만나면 반복문 블록을 탈출한다.
❗️ 블록의 기준으로보면 print(i)if 문 이 같은 블록으로에 있어서 while문에 속해져 있다고 생각해서 아무것도 출력이 안될 줄 알았는데.. 1 이 출력되는 것을 알 수 있다. break문 만나고 반복문을 빠져나온다는 말은 break 뒤에있는 코드는 해결하고 나오는건가보다..?

i = 0

while i != 10:
  i += 1
  if i % 2 == 0:
    break
  print(i)

>> 1 출력 

3. pass

pass는 아무 역할 없이 단순히 코드를 진행 하게 된다.
❗️ 의미 없어보이는 코드인데 어디에서 주로 사용하는가? 라고 생각해보면 try execpt 문에서 에러가 발생하더라도 계속 코드를 진행시키기 위해 except: 문에서 pass를 사용하는 경우가 많습니다.

i = 0

while i != 10:
  i += 1
  if i % 2 == 0:
    pass
  print(i)

>> 1,2,3,4,5,6,7,8,9,10 출력 

그럼 나의 뻘짓을 구경해보면 break 문이 처음에 if절 안에 있어서 이상하게 헛돌았다 print를 찍어서 확인해 보았지만, 비슷 결과값의 반복으로 또 거기서 잘못보는 실수까지.. 정말 바보같다. 다시는 이런실수 안할꺼야..

post-custom-banner

0개의 댓글