STUDY_SEONMIN

DAY2 - 조건문(if, else, elif)과 반복문(for, while) 본문

EDUCATION/DSS Online 6기

DAY2 - 조건문(if, else, elif)과 반복문(for, while)

Kululu_ 2021. 1. 9. 16:57

조건문이란?

- 특정 조건에 따라서 코드를 실행하고자 할 때 사용하는 문법

- if(만약 ~라면), else(그렇지 안으면), elif(그렇지 않고 ~라면)

- else 와 elif 는 독립적으로 사용할 수 없고 반드시 if가 나온 후에 나와야 한다.

 

* 오늘 내 주머니 사정에 따라서 어떤 음식을 먹을지를 조건문을 이용해 표현해보자.

해당 코드의 의미는 다음과 같다. 만약 돈이 7000원 이상 있으면 돈까스를 먹는다.

하지만 이렇게만 코드를 작성했을 때는 7000원 미만일 때 무엇을 먹을지를 표현할 수 없다.

 

그럴 때 사용하는 문법이 else 다.

else문을 추가해주면 돈이 7000원 보다 적게 있을 경우 우동을 먹는다고 표현할 수 있다.

 

우동은 5000원이라고 했을 때 내가 돈이 3000원밖에 없으면 어떻게 해야할까? 우동을 먹지 못하고 식당을 나와야할 것이다.

 

이 경우 내가 가진 돈에 따라 3가지 케이스로 분류된다.

- 7000원 이상일 때 : 돈까스

- 5000원 이상, 7000원 미만일 때 : 우동

- 5000원 미만일 때 : 식당을 나온다

 

코드로 표현하자면 아래와 같이 표현할 수 있고 elif를 사용할 수 있다.

elif 는 그렇지 않고 ~라면이라는 의미이기에 elif money >= 5000 은 "그렇지 않고 money가 5000 이상이라면"의 뜻이다. 여기서 그렇지 않고는 위에 나오는 if money >= 7000이 아니라면을 의미한다.

즉, money가 7000보다 작고 money가 5000이상이라면 우동을 먹습니다. 가 되는 것이다.

 

 

*간단한 if, else 구문의 경우 삼항 연산자로 표현할 수 있다.

삼항연산자 : (True) if (condition) else (False)

=> 조건에 부합할 때는 True 자리에 들어간 내용이 실행되고, 그렇지 않으면 False 자리에 들어간 내용이 실행된다.

 

*돈까스, 우동을 삼항연사자로 표현해보자.

 

반복문

1) for문 - iterable 데이터의 값 갯수만큼 코드를 반복 실행할 때 사용

 

*for 문 사용법.

ls에 0, 1, 2, 3, 4라는 값이 담겨져 있다. for문을 사용하게 되면 차례로 값을 꺼내서 data에 대입시킨 후 print(data) 코드를 실행하게 된다. ls 안에서 값을 차례대로 꺼내다가 더 이상 꺼낼 수 있는 값이 없으면 반복이 종료된다.

 

2) while문 - 원하는 조건에 부합하는 동안 계속 코드를 반복 실행할 때 사용

number 라는 변수가 5 미만인 동안 print(number) 와 number += 1 코드를 반복해서 실행하는 것이다.

 

 

3) break / continue

- break : 반복을 중단할 때 사용

- continue : 반복문 내에서 아래 코드를 더 이상 실행하지 않고 처음 조건부로 돌아가고 싶을 때 사용

*break 사용 예시( 1부터 100까지 차례대로 숫자를 더하다가 숫자가 10 보다 커지면 중단 )

원래는 while의 조건인 num <= 100인 동안 계속해서 코드가 반복실행 되어야 하지만 break를 이용해서 num > 10일 때 while 반복문을 멈췄다.

*break가 없다면?

 

*continue 사용 예시( 1부터 10까지 숫자 중 홀수는 건너뛰고 짝수만 출력해보자 )

data % 2는 2로 나눈 나머지를 의미한다. 0을 제외한 모든 숫자는 bool 타입으로 계산될 때 True로 계산된다.

홀수를 2로 나눈 나머지는 1이 되므로 True가 되고 짝수를 2로 나눈 나머지는 0이 되므로 False가 된다.

따라서 홀수일 때는 continue가 되는 것이다.

continue는 반복문 내에서 아래 코드를 실행하지 않고 다시 for문 처음으로 돌아가기 때문에 홀수들은 출력되지 않는 것이다.

 

*continue가 없다면?

Comments