스터디/CS50

하버드 CS 50 2장 3) 조건문과 루프

공대생철이 2023. 1. 15. 14:19
728x90

이번에 등장할 문법은 조건문과 루프이다

먼저 그 전에 배웠던 내용을 살짝 복습해보자면 변수를 선언할 때는 타입을 항상 앞에 붙여서 선언해주었다.

 

이번에 counter는 정수이기에  int를 붙여주었다.

 

여기서 counter를 하나 늘리고 싶다면 어떻게 해야 할까?

일반적인 수학을 생각하면 무슨 소리인가 싶기도 하다.

하지만 위에서 변수 할당했던 과정을 생각해보자.

= 등호는 오른쪽에 있는 값을 왼쪽에 있는 변수에 할당해주는 할당 연산자이다.

 

이 논리를 그대로 가지고 가면

1. counter에 1을 더해준다

2. 해당 결과값을 counter에 다시 할당한다.

 

그렇게 해서 변수 값이 바뀌게 된다.

 

이걸 하기 위해 더 간단한 방식들도 있다.

모두 다 counter에 1을 더해주는 코드이다.

 


이번에는 조건문이다.

 

조건문에서는 if 라는 친구를 사용한다.

 

if (조건){

실행 코드

}

 

이런 식으로 작동하게 된다.

x가 y보다 크면 printf 머시기를 실행하라

 

이런 코드가 된다.

 

만약 초기 조건에 걸맞지 않은 친구들을 조작해주고 싶다면?

else를 붙여주어 초기 조건이 아닌  경우에 코드를 작성해준다.

여기에 추가적으로 조건을 더 붙일 수도 있다.

x가 y보다 작으면?

아니면 ->  x가 y보다 크면?

아니면 -> x가 y와 같으면?

 

이런 구조로 진행되는 코드이다.

여기서 등호가 두 개 있는 연산자가 있다.

 

등호 한 개는 우리가 이미 위에서 값을 할당하는 연산자로 배웠다.

원래 같다라는 의미의 등호를 이미 정해버렸기 때문에 등호를 두개 써서 ==를 같다라는 표현으로 사용하게 되었다.

이것을 일치 연산자라고 한다.

 

전체 코드를 다시 한 번 살펴보자.

과연 3번째 조건은 필요할까?

x가 y보다 작지도 않고 크지도 않다면 같지 않을까?

그래서 마지막 조건을 삭제해줌으로서 좀 더 코드를 간결하게 만들 수 있다.

얼마나 효율적으로 코딩을 하는지에 따라 메모리나 CPU 사용량이 변할 수 있기 때문에 코드의 효율성을 고려하는 것은 매우매우 중요하다.

 


다음 살펴볼 것은 루프, 반복문이다

 

첫번째 반복문 문법은 while이다.

while 괄호 안에 있는 조건이 참이면 중괄호 안에 있는 코드를 실행한다는 문법이다.

 

만일 특정 횟수 만큼 작업을 수행하고 싶으면 어떻게 할까?

i가 49일때까지 실행하고 50이 되는 순간 while 조건이 거짓이 되기 때문에 이 코드는 50번 실행된다. 

while 문 안에  i=i+1 은 i+=1 , i++  코드로 대체 가능하다.

 

하지만 실제 반복문을 쓸 때 추가적인 변수할당을 해줘야 하는 while 보다는 for을 더 많이 사용한다.

for의 괄호 안에는 (변수 초기화; 변수 조건; 변수 증감)에 해당하는 코드를 넣고 참일 때 중괄호 안의 코드를 실행하게 된다.

 

1. 변수 i =0을 선언하고

2. 변수 조건과 비교한 후 참이라면 

3. 중괄호 안의 코드를 실행하고

4. 변수 증감에 따라 1을 키워준다.

5. 다시 변수 조건과 비교한 후 참 거짓인지에 따라 코드 작동 여부 결정

 


이번 강의에서 배운 것

- int 타입

- = 와 ==의 차이

- if, else를 사용한 조건문

- while, for을 사용한 루프

728x90