Love Every Moment

〔CS50 / C언어〕 조건문(if), 루프(for/while), 사용자 정의 함수 본문

PROGRAMMING::LANGUAGE/C

〔CS50 / C언어〕 조건문(if), 루프(for/while), 사용자 정의 함수

해 송 2021. 1. 15. 15:39
반응형

 

1. C언어 기초

 

 

 

(1) printf() : 뒤에 나오는 문장을 출력하는 역할을 하며 쌍따옴표 " " 안에 문장을 작성해야함

(2) 세미콜론(;) : 함수를 작성하고나서 마지막에 붙여주어야 함

(3) clang : 소스코드(hello.c)를 머신코드(a.out)로 변환시켜주는 컴파일러 명령어

* make : clang 보다 간단하게 머신코드 파일을 만들어주는 명령어

* 위의 사진처럼 clang animal.c -lcs50 보다 쉽게 머신코드 파일 animal 을 만들어준다

(4) ./ : 머신코드 파일을 실행하는 역할

 


 

2. 문자열(string)

 

 

(1) get_string() : 스크래치에서의 ask 함수와 같은 역할을 하며 사용자의 답변을 왼쪽의 변수에 저장한다

string animal = get_string("What's your favourite animal?\n"

animal 이라는 변수의 종류가 문자열이라는 것을 알려주기 위해 string 을 앞에 작성한다

get_string() 함수를 통해 얻은 데이터를 animal 이라는 변수에 저장한다

 

(2) % : 위에서 사용자의 답변을 저장한 변수값을 보여주는 형식지정자(place holder)

예시에서는 animal 이라는 변수에 저장된 값이 문자열(string) 이었기 때문에 %s 가 된다

콤마(,) 뒤에는 animal 을 작성해줌으로써 %s 자리에 들어갈 변수가 정확히 무엇인지 알려준다

 

*** 두번째 사진처럼 문장 안에 ,animal 을 포함하면 오류가 생기니 꼭 " " 문장을 마치고 작성해주자

 


 

3. 조건문(if)과 루프(while, for)

 

 

(1) if 조건문

if ( ) {} 

else if () {} 

else if () {}

...

else {}   

위와 같은 형식으로 작성할 수 있고 조건이 적은 경우 if 단독 혹은 if 와 else 만으로도 작성 가능하다.

 

*** if (n % 2 == 0) 에서 == 는 일치 연산자라고 불리며 할당 연산자인 = 와 헷갈리지 않도록 하자
*** % 는 뒤에 따라오는 숫자로 나누었을 때의 나머지를 구하라는 의미

 

(2) while 루프

while () 의 형식으로 사용되며 괄호 안에 있는 조건이 참이면 계속 반복하여 명령을 수행한다.

while (true) 라고 입력할 시에는 영원히 명령어를 반복한다.

 

(3) for 루프

for (변수 초기화; 변수 조건; 변수 증가) 의 형식으로 사용되며 특정 횟수 명령어 수행 시에 편리한 루프이다.

for (int i = 0; i<10; i++) 라고 작성하면 변수 i 의 초기값은 0, i 가 10 미만일 때, 매회 i 에 1을 더해준다는 의미이다.

 


 

4. 사용자 정의 함수

 

 

(1) 반환값이 없는 함수

void 함수명 (void) 의 형식으로 작성하며 새로운 함수를 정의함으로써 더욱 간단한 코드를 작성할 수 있게 해준다.

void cough(void) 의 형식으로 함수를 정의하면 명령어 cough() 가 사용 가능하고

void cough(int n) 의 형식으로 함수를 정의하면 명령어 cough(1) cough(5) 이런 식으로 사용이 가능하다.

괄호 안의 void 는 입출력이 없는 상태를 의미하므로 cough() 가 명령어가 되는 것이다.

 

*** int main(void) 이전에 함수를 정의해주어야 사용자 정의 함수가 있다는 것을 인식할 수 있는데, 새로 추가할 함수가 많으면 보기에 좋지 않으므로 void cough(void); 를 맨앞에 한번 더 작성하고 실제 함수 정의는 아래에 작성한다

 

 

(2) 반환값이 있는 함수

int 함수명 (void) 의 형식으로 작성하며 형식지정자가 다를 경우 string, char 등도 작성 가능하다. 

사용자가 어떤 값을 저장할지 아직 모르기 때문에 int n; 은 현재 변수 n 이 쓰레기 값(garbage value)을 가지는 것을 의미하며 나중에 사용자가 답변한 값이 변수 n 에 저장된다.

 

 


 

5. 중첩 루프

마리오 게임처럼 화면에 여러 개의 이미지를 가로 세로로 여러개 출력하고 싶을 때에 사용한다.

do...while 함수에서 먼저 사용자가 원하는 사이즈가 무엇인지 알아내는데 만약 n 이 1보다 작으면 # 을 출력하는 것이 불가능하므로 while 조건문에 n<1 을 작성하여 사용자가 1 이상의 답변을 할 때 까지 질문하게 한다.

for 루프 (i) 안에 또 다른 for 루프 (j) 를 작성하면 for(j) →  for(i)    →     for(j) for(i)    →    ...    이런 식으로 내부 for루프 실행 후에 외부 for 루프 실행을 하는 세트를 n 번 반복하게 된다.

 

 

※ 네이버 부스트 코스 모두를 위한 컴퓨터 과학(CS50) 강의를 참고하여 작성하였습니다.

 

컴퓨터 코딩 프로그래밍

반응형
Comments