Development Log
[CS50] C언어 - 사용자 정의 함수, do-while, 중첩 루프 본문
사용자 정의함수
- 사용자가 직접 작성해서 사용하는 함수이다.
- 함수의 형식은 main()에서 호출하기 전에 정의되어 있거나 혹은 프로토타입을 먼저 선언해줘야 한다.
출력종류 함수이름(입력종류 변수이름){}
//예시
int get_positive_int(void){}
void cough(int n){}
함수 작성 방법1
void function(){ // 함수 헤더
// 동작
}
int main(void){
function(); // 함수 호출
}
함수 작성 방법2
void function(); // 함수 프로토타입 선언
int main(void){
function(); // 함수 호출
}
void function(){ // 함수 헤더
// 동작
}
예시 : cough 함수 만들기
코드1
#include <stdio.h>
void cough(int n)
{
for (int i = 0; i < n; i++)
{
printf("cough\n");
}
}
int main(void)
{
cough(3);
}
문제점 : 함수가 1개가 아닌 여러개일 경우 main 함수는 아래로 내려간다.
방법 : main 함수를 올리고 그 외의 함수를 아래로 내린다. (코드2)
코드2
#include <stdio.h>
int main(void)
{
cough(3);
}
void cough(int n)
{
for (int i = 0; i < n; i++)
{
printf("cough\n");
}
}
문제점 : C는 오래되었고 시킨대로만 행동하기 때문에 cough라는 함수가 있을거라고 생각하지 못해 에러가 발생한다.
방법 : cough 함수를 먼저 정의해 마치 이전에 cough를 봤던 것처럼 C를 속인다. (코드3)
코드3
#include <stdio.h>
void cough(int n);
int main(void)
{
cough(3);
}
void cough(int n)
{
for (int i = 0; i < n; i++)
{
printf("cough\n");
}
}
=> 코드3은 코드1과 코드2의 문제점들을 해결할 수 있다.
do-while문
- 무조건 한 번은 먼저 수행을 한 뒤에 조건을 확인한다. (while문과 차이점)
do{
//동작
}while(조건);
중첩 루프
- 반복문 안에 반복문이 들어가는 형태를 말한다.
for (int i = 0; i < n; i++) // 바깥쪽 루프 : 세로 처리 코드
{
for (int j = 0; j < n; j++) // 안쪽 루프 : 가로 처리 코드
{
// 코드
}
// 코드
}
think about
1) 사용자 정의 함수를 사용하는 것의 장점은 무엇일까요?
더보기
- main() 함수가 간결해진다.
- 반복되는 코드를 줄일 수 있다.
- 수정이 용이하다.
- 함수의 이름을 통해 해당 함수의 구현 코드를 보지 않아도 기능을 추측할 수 있다. (함수의 이름을 잘 정했을 경우)
David J. Malan의 강의
모두를 위한 컴퓨터 과학 (CS50 2019)
부스트코스 무료 강의
www.boostcourse.org
'성장 여행기 > CS50' 카테고리의 다른 글
| [CS50] 배열 - 컴파일링 (0) | 2022.03.25 |
|---|---|
| [CS50] C언어 - 하드웨어의 한계 (0) | 2022.03.25 |
| [CS50] C언어 - 조건문과 루프 (0) | 2022.03.25 |
| [CS50] C언어 - 문자열 (0) | 2022.03.24 |
| [CS50] C언어 - 기초 (0) | 2022.03.24 |