문장 (Statement)
문장은 처리를 나타내는 표현이다. 데이터를 처리하기 위하여 프로그램은 변수, 연산, 서브프로그램 등을 이용한다. 문장은 기본적으로 선언문과 실행문으로 분류된다.
- 선언문(Declaration Statement): 변수명과 타입 등을 바인딩하여 이후에 해당 변수에 이용할 수 있도록 한다.
- 실행문(Execute Statement): 실제로 변수, 서브프로그램 등을 이용하여 데이터를 처리한다.
지금부터 실행문에 해당하는 다양한 문장들을 알아보도록 하겠다.
대입문 (Assignment Statement)
프로그램에서 가장 자주 사용되는 문장으로 변수의 값을 변경한다. 대입 연산자를 이용하여 대입 연산자의 오른쪽 부분의 값을 대입 연산자의 왼쪽에 있는 변수의 값으로 대입한다.
int A, B, C; // 정수형 변수 A, B, C 선언
A = 5; // 변수 A에 5를 대입한다.
C = B = A = 5; // 대입 연산자는 우결합하기에 A=5, B=5, C=5 순으로 대입된다.
삼항 조건 연산자를 이용하여 값에 대입될 변수를 선언할 수도 있고, 산술 연산자와 대입 연산가 결합된 형태의 복합 대입 연산자를 이용하여 변수에 값을 대입할 수도 있다. 복합 대입 연산자로는 다음이 있다.
연산자 | 의미 |
+= | 변수의 현재 값에 더한 값을 대입한다. |
-= | 변수의 현재 값에서 뺀 값을 대입한다. |
*= | 변수의 현재 값에 곱한 값을 대입한다. |
/= | 변수의 현재 값에 나눈 값을 대입한다. |
%= | 변수의 현재 값을 나눈 나머지 값을 대입한다. |
>>= | 변수의 현재 값을 오른쪽으로 비트 단위 시프트한 값을 대입한다. |
<<= | 변수의 현재 값을 왼쪽으로 비트 단위 시프트한 값을 대입한다. |
변수에 대입할 값의 타입과 변수의 타입이 서로 일치하지 않는 경우, 타입 변환이 일어난다. 이떄 타입 변환은 묵시적 타입 변환과 명시적 타입 변환 모두 가능하다.
제어문 (Control Statement)
제어문은 프로그램의 수행 흐름을 제어한다. 대표적인 제어문으로는 조건문과 반복문이 있다.
조건문 (Conditional Statement)
조건에 따라 서로 다른 처리를 하도록 하는 문장으로 대표적으로 if문, switch문이 있다.
if문의 경우, 조건문이 참인 경우 다음의 문장을 수행하고, else가 있으면 조건이 거짓인 경우 else문에 해당하는 다음의 문장을 수행한다.
// if문
if (x > 5) {
x = 10;
printf("%d\n", x);
} else {
x = 0;
printf("%d\n", x);
}
switch문의 경우, 조건의 값에 따라 모두 다르게 처리한다. 한 번에 여러 갈래로 흐름을 나누는 것이 가능하다. case 별로 경우를 분류하고, case에 해당하는 값이 없는 경우 default 값을 수행한다.
switch (n) {
case 0: printf("zero\n"); break;
case 1: printf("one\n"); break;
case 2: printf("two\n"); break;
case 7: printf("seven\n"); break;
default: printf("bye");
}
반복문 (Loop, Iteration Statement)
원하는 문장을 반복해서 수행하도록 제어하는 문장이다. 대표적으로 for문과 while문이 있다.
for문은 프로그래밍 언어에 따라 형식이 조금씩 다르다. C/C++에서의 for문은 다음과 같다.
int y = 0;
for (int i = 0; i < 100; i++) { // 초기화식, 조건식, 증감식
y += 1;
printf("%d\n", y);
}
while문에서는 조건이 참인 동안 필요한 문장을 반복해서 수행하고, 만약 조건이 거짓이면 문장을 수행하지 않는다.
int i = 1;
while(i < 10){
printf("%d\n",i);
i++;
}