3. 제어문

프로그램의 제어란 프로그램의 실행 순서를 정하는 것을 말한다. 복합문, 선택문, 반복문 등이 있다.

함수내의 명령문은 일반적으로 첫 번째 명령문부터 마지막 명령문까지 순서대로 실행되지만, 제어문을 통하여 실행 순서를 바꿀 수 있다.

복합문은 {} 중괄호로 둘러싸여 하나의 실행 블록을 가지며, 함수같은 것이 복합문이다.

선택문은 두 가지 이상의 명령문들 중에서 하나만 선택하여 실행하게 하는 명령문으로 if문과 switch 문이 있다.

반복문은 같은 명령문을 필요한 횟수만큼 반복하여 실행하는 명령문으로, for문, while문, do-while문이 있다.

3.1 변수의 선언과 초기화

변수는 메모리공간의 이름으로 자료형을 가진다.

변수가 선언되고 초기화되기 전에는 변수의 값이 정해지지 않는다.

다음의 예제를 보자

#include <stdio.h>

int main()
{
        int num1;
        int num2;

        num1 = 10;
        num2 = num1 + 10;
        printf("num1: %d\nnum2: %d\n",num1,num2);
        return 0;
}

2개의 int형 변수 num1 과 num2가 선언되면 각각 4바이트씩 변수가 할당되며, 값은 미정값을 가지고 있다.

num1 = 10에서 num1의 값이 10으로 초기화 되고, num2=num1+10에서 num2의 값이 20으로 초기화 된다.

변수의초기화01.png

초기화를 하지 않으면 잘못된 결과가 나오게 된다.

#include <stdio.h>

int main()
{
        int num1;
        int num2;

        //num1 = 10;
        num2 = num1 + 10;
        printf("num1: %d\nnum2: %d\n",num1,num2);
        return 0;
}

 변수의초기화02.png

3.2 복합문

복합문은 여러 개의 명령문을 묶어 하나의 실행단위로 만든 것으로 중괄호로 표시한다.

다음의 예제를 보자

#include <stdio.h>

int main()
{
        int num1;
        int num2;

        num1 = 33;
        {
                num2 = 10;

                printf("num1+num2 = %d\nnum1-num2 = %d\n",num1+num2,num1-num2);
        }
        return 0;
}

함수 내에 중괄호로 둘러싸인 부분은 복합문으로 하나의 명령문으로 간주 된다. 주로 선택문이나 반복문에서 실행할 명령문을 묶기 위하여 많이 사용된다.

복합문01.png