1. 반복문: while문
while문은 for문과 달리 미리 반복 횟수를 알 수 없고 조건에 따라서 반복하는 경우에 사용한다.
while(조건식){ 반복 실행될 문장; } |
조건식이 참이면 루프 안에 반복 실행될 문장을 실행하고 거짓이면 루프를 벗어난다.
2. while문을 이용한 무한 루프
조건식에 참인 값을 쓴다.
0이외의 어떠한 값도 가능하지만 보통 1을 사용한다. (참은 1로 표시되기 때문)
while(1){ 반복 실행될 문장; } |
3. 반복문 : do~while문
do~while문은 while문처럼 미리 반복 횟수를 알 수 없고, 최소한 한번은 반복 문장을 실행할 경우에 많이 사용한다.
do{ 반복 실행될 문장; }while(조건식); |
일단 반복 실행될 문장을 한 번 실행하고 while의 조건식을 검사한다. 조건이 참이면 루프 안에 반복 실행될 문장을 계속 실행하고 거짓이면 루프를 벗어난다. while(조건식)다음에 세미콜론(;)을 붙여야 하는 것을 주의!
4. 분기문: break문
break문은 반복문(for, while, do~while)이나 switch~case문에서 안쪽 루프를 하나 벗어나는데 사용한다. 무한 루프에는 특별한 조건에서 루프를 탈출 하도록 반드시 break문을 작성한다.
5. 분기문 : continue문
continue문은 for, while, do~while문에서 루프의 조건식을 검사하는 부분으로 다시 되돌아간다.
break문처럼 루프를 빠져나가는 것이 아니라 돌던 루프의 continue 아래 부분을
실행하지 않고 다시 조건을 검사하는 부분으로 가는 것이다.
6. 함수
6.1 C프로그램의 기본 틀
콘솔 기반 C프로그램은 main()함수로 시작한다. main()함수는 콘솔 기반 C프로그램의 시작점이라고 말할 수 있다.(*entry point)
하나의 프로그램에는 반드시 하나만 존재해야 한다.
리턴값이 없는 함수나 매개변수가 없는 함수는 그 위치에 비어 있다는 뜻의 "void"를 쓴다.
매개변수 리스트에 쓰는 "void"는 생략할 수 있지만 리턴형에 쓰는 "void"는 생략이 불가하다.
#include <stdio.h> int main(void); { 코드 return 0; } |
(C프로그램의 기본 형식)
7. 함수의 입력과 출력
입력 : 매개변수(parameter), 인자
출력 : 반환값(return value), 리턴값
void : 리턴값이 없으면 리턴형 쓰는 자리에 void -(void add)
:매개변수 없으면 매개변수 쓰는 자리에 void -add(void)
8. 함수를 사용할 경우의 장점
- 복잡한 문제를 나누어서 해결하는 구조적 프로그래밍(structured programming)이 가능하다.
- 프로그램의 각 부분을 독립적인 모듈로 나누어 작성하므로 작성, 수정, 유지, 보수, 확장이 용이하다.
- 반복되는 작업을 하나의 루틴으로 만들어 재사용하므로 코딩 양이 감소한다.
- 일반 사용자가 알 필요없는 특정한 부분을 숨갈 수 있는 정보 은폐가 가능하다.
9. 표준 라이브러리 함수와 사용자 정의 함수
C언어의 기본적인 문법과 표준 함수들은 컴파일러에서 지원을 하는데 이러한 함수들의 집합을 표준 라이브러리 함수라고 한다.
하지만 내가 원하는 기능을 가진 함수를 사용하고 싶다면 표준 라이브러리 함수에 없기 때문에 직접 만들어야 하는데
이를 사용자 정의 함수라고 한다.
10. 함수명
동사, 모두 소문자와 단어 사이 언더스코어(_)
-add(), add_number(), delete_name(), check_for_errors(), dump_data_to_file()
동사, 의미가 바뀌는 부분은 대문자, 나머지는 소문자(lower camel case)
-add(), addNumber(), deleteName()
동사, 첫 글자와 의미가 바뀌는 부분은 대문자, 나머지는 소문자(upper camel case)
-AddNumber(), DeleteName()
11. 함수 정의, 호출, 선언
11.1 함수정의
- 함수만들기
- 이름, 매개변수, 리턴형, 기능
11.2 함수호출
- 함수 사용하기
- 이름, 매개변수
11.3 함수선언
- 함수의 사용법
- 이름, 매개변수, 리턴형
- 컴파일러에게 함수에 대한 정보를 미리 줌
12. 함수 호출(call)
함수를 만드는 것을 함수를 정의(definition) 한다고 한다.
함수를 만든(정의) 후 함수를 사용(호출)하며 함수를 호출할 때는 함수 이름과 괄호 안에 argument를 개수만큼 써야 한다.
(argument가 없을 때는 빈 괄호만 쓰면 된다.)
12.1 #include <stdio.h>와 함수 선언
지금까지 본 예제들의 첫 줄에는 "#include <stdio.h>"와 같이 stdio.h파일을 컴파일 하기 전에 프로그램에 포함시키고 있다.
stdio.h파일의
_CRTIMP int __cdecl printf(const char *, ...);
int printf(문자열,...);
이것이 printf()함수의 선언이다.
사용자 정의 함수뿐 아니라 표준 라이브러리 함수도 사용하기 전에 반드시 선언해야 한다.
직접 위의 한 줄을 main()함수 전에 추가해도 되지만 선언되어 있는 헤더 파일인 stdio.h 를 프로그램에 포함하여
간접적으로 선언하는 것이다.
함수 선언은 컴파일러에게 프로그래머가 라이브러리 함수를 올바르게 사용하고 있는지 체크하도록 하기 위한 것이다.
'C언어' 카테고리의 다른 글
[C언어] 배열, 구조체, 포인터 (0) | 2022.06.09 |
---|---|
[C언어] 함수, 기억클래스 (0) | 2022.06.02 |
[C언어] 제어문 (2) (0) | 2022.05.19 |
[C언어] 제어문 (1) (0) | 2022.05.15 |