사람이 가장 잘 이해할 수 있는 프로그래밍 언어(Python, Java, C++, C#, C, Ruby, Go)언어로 작성한 프로그램이라도 컴파일러가 이해할 수 있는 컴퓨터를 위한 기계어로 번역할 수 있습니다. 따라서 사용자는 번역기가 제공하는 프로그래밍 언어의 문법에 맞게 프로그램을 작성해야 합니다.
프로그래밍 언어가 요구하는 문법을 나열하는 것을 서술(Statement)형식이라고 합니다. C 언어도 몇 가지 서술 형식을 가지고 있습니다.
◎ C 언어의 기본 서술 형식
1) 단일 서술문
단일 서술문(Single Statement)은 논리적인 최소 명령 실행 단위입니다. 즉 한 개의 서술문 단위로 작업이 진행됩니다. C 언어는 ; (세미콜론)으로 문장을 구분하며 Java, Python등의 프로그래밍 언어또한 논리는 똑같습니다. ; (세미콜론)으로 문장을 구분하기 때문에 한 줄에 여러 개의 서술문은 쓸수도 있습니다.
ex)
a = a + 30; /* 한 줄로 이루어진 단일 서술문 */
a = a + 30; /* 두 줄로 이루어진 단일 서술문 */
a = a + 30; b = b + 50; /* 한 줄에 두 개의 단일 서술문을 사용합니다. */
위의 예와 같은 표현법은 모두 가능하며 총 4가지의 서술문을 사용한 것입니다.
※ 주의: C 언어 및 다른 프로그래밍 언어에서 코드를 작성할시에 문장을 마무리 할 때 반드시 ; (세미콜론)을 사용해야 합니다. ; 을 사용하지 않으면 프로그램이 제대로 실행되지 않고 오류가 발생하게 됩니다
2) 복합 서술문
복합 서술문(Compound Statement)은 여러 단일 서술문을 { } 중괄호를 사용해 하나로 묶은 형태입니다. 중괄호의 안의 단일 서술문이 모두 수행되면 이 복합 서술문이 수행된 것으로 처리가 됩니다. 예를 들어 아래의 사진과 같이 적으면 단일 서술문 2개를 사용한 것이 아니라 복합 서술문 1개를 사용한 것입니다.
{ a = a + 30; /* 주의 단일 서술문 뒤에는 항상 ;(세미콜론)을 찍어주어야 함 */
b = b + 50; } /* bracket { }뒤에는 찍어줄 필요가 없음 */
복합 서술문은 { } 중괄호를 사용하기 때문에 자신의 영역이 구분이 됩니다. 따라서 ; (세미콜론)을 사용할 필요가 없습니다. 하지만 다음과 같이 } (닫는 중괄호) 뒤에는 ; (세미콜론)을 사용해도 오류가 나지 않는데, 이것은 복합 서술문을 사용한 후 의미 없이 단일 서술문 1개를 적은 것으로 간주되기 때문에 정상적인 사용방식은 아닙니다.
{ a = a + 30; }; /* 의미 없는 단일 서술문
◎ 역할에 따른 서술 형식
1) 수식 서술문
수식 서술문(Expression Statement)은 계산 수식을 표현한 단일 서술문입니다. 앞에서 단일 서술문 설명을 위해 예로 든 내용도 수식 서술문에 해당합니다. 두 값을 평균을 내는 수식을 구성해 보면 아래의 예제와 같습니다.
average = (a + b) / 2; /* 프로그래밍에서는 나눗셈 기호를 계산기와 같이 / 로 사용합니다.
2) 조건 서술문
조건 서술문(Selection Statement)은 조건을 만족하면 지정한 서술문을 수행하도록 작성한 서술문입니다. 어떤 값이 5보다 크면 해당 값을 0으로 변경하는 조건문을 구성해 보면 아래의 예제와 같습니다.
if(a > 5) a = 0;
3) 반복 서술문
반복 서술문(Iteration Statement)은 단일 서술문 또는 복합 서술문을 반복해서 수행하도록 작성한 서술문입니다. 이 소스 코드는 0에서 4까지 더하는 기능을 반복문을 사용해 구성한 것입니다.
int sum = 0, i; for(i = 0; i < 5; i++) sum = sum + i;
4) 라벨 서술문
라벨 서술문(Labeled Statement)은 소스 파일의 특정 위치에 라벨을 지정하고 goto문을 사용해 그 위치로 이동할 수 있도록 작성한 서술문입니다. C 언어가 만들어진 초창기에 기존 프로그래밍 언어를 사용하던 프로그래머들이 쉽게 C 언어로 유입될 수 있도록 제공한 서술문입니다. 그러나 원칙 없이 프로그래머가 원하는 위치로 실행 지점을 이동하는 것은 구조화된 언어인 C 언어의 소스 코드 구성을 파괴할 수 있는 문법이기 때문에 되도록 사용하지 않는 것이 좋습니다.
if(a > 0) goto EXIT; /* 이동(라벨이 표기된 곳으로) */ a = a - 1; EXIT; /* 라벨 */
5) 분기 서술문
분기 서술문(Jump Statement)은 자신이 소속된 서술문을 벗어나거나 흐름을 바꾸어 놓을 때 사용합니다.
break, continue와 같은 문법들이 분기 서술문에 해당하는데 return문, goto문처럼 실행 흐름을 마음대로
조정(서술문의 범위를 마음대로 벗어날 수 있음) 하는 것이 아니라 특정 조건 서술문이나 반복 서술문 안
에서만 적용되기 때문에 잘 활용하는 것이 좋습니다.
while(1) { if(i > 5) break; /* if문의 로직에 의해 i가 5보다 크면 반복문을 빠져나갑니다. */ i++ }
6) 주석문
프로그래밍을 하다 보면 상황을 설명하거나 작업 내용을 기억하기 위해 소스 파일에 메모를 남겨야 하는 경우가 있습니다. 이럴 때 주석문(Comment)를 사용하면 됩니다.
주석문은 /* 기호로 시작해서 */ 기호로 끝나고, 여러 줄에 걸쳐서 사용할 수 있습니다. 또 이 기호가 표시된 부분은 컴파일러가 번역을 하지 않으므로 어떤 내용을 적어도 상관없습니다. 다음과 같이 소스코드에 주석문을 적절히 사용하면 코드의 가독성이 좋아집니다.
average = (a + b) / 2;
/* a , b의 평균값을 계산하여 average에 저장합니다 */
※ 오늘은 C언어 프로그래밍에서 'C언어의 서술형식'에 대하여 알아보았습니다.
이 포스트는 학부에서 제공하는 기본적인 컴퓨터 공학 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 C 언어 프로그래밍 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.
'프로그래밍 > C 언어' 카테고리의 다른 글
[C언어] 일상생활에서 알고리즘 적용 (0) | 2019.09.29 |
---|---|
[C 언어] 최초의 알고리즘 (0) | 2019.09.28 |
[C언어] C언어 프로그램의 Key, 알고리즘 (0) | 2019.09.28 |
[C언어] C언어의 특징 (0) | 2019.09.25 |
[C언어] C 언어 소개 및 개요 (0) | 2019.09.25 |