제어문

제어문(Control Flow Statements)은 프로그램의 흐름을 제어하는 경우에 사용하는 실행문으로, 조건문, 반복문, 분기문 등이 포함되어 있습니다.

조건문

조건문(Conditional Statements)은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문입니다.

대표적인 조건문의 형태는 4가지가 있습니다.

  1. if 문
  2. if / else 문
  3. if / else if / else 문
  4. switch 문

조건 또는 조건 표현식

프로그램이 실행되는 중 경우에 따라서 분기되어 서로 다른 프로그램 문장을 실행할 수 있습니다.

다양한 상황을 표현하기 위해 조건(Condition) 개념을 사용하여 연산 결과가 참(true) 또는 거짓(false)이 되는 조건을 표현할 수 있는 조건 표현식(Condition Expression)을 적용합니다.
조건식은 관계 연산자와 논리 연산자의 조합으로 표현됩니다.

 x < 10             // x 가 10보다 작으면 true, 아니면 false
 !(x < y)           // x 가 y 보다 크면 true, 아니면 false
 x <= 0 || h >= 80  // x 가 0 이하 이거나 h가 80이상이면 true, 아니면 false
 x > 3 && x < 7     // x 가 3보다 크고 7 미만이면 true, 아니면 false

if 문

if 문의 기본 문법은 다음과 같습니다.

if (조건){
    문장1;
    문장2;
    문장3;
    ....
}

조건에 들어가는 조건식이 참(ture)이면 중괄호{ } 내부의 문장이 순차적으로 실행되며, 거짓(false)이면 실행되지 않습니다.

if~else 문

if문의 조건을 만족한 경우에 해당하는 일을 처리하고, 조건을 만족하지 않을 땐 다른 일(프로그램 문장)을 처리하는 경우에 사용됩니다.

if는 독립적으로 사용될 수 있었지만 else는 독립적으로 사용될 수 없으며 항상 if와 함께 사용되어야 합니다.

문법은 다음과 같습니다.

if (조건){
    문장1;
    문장2;
    문장3;
    ....
}
else {
    문장1;
    문장2;
    문장3;
    ....
}

조건식이 참이면 if의 중괄호{ }안에 있는 문장이 실행되고 거짓이면 else의 중괄호안에 있는 문장이 실행됩니다.

else~if 문

else~if 문은 비교 대상이 여럿이거나 순차적으로 비교를 해야할 경우 등 조건을 더욱 세분한 조건으로 구분해야 할때 else~if문을 사용하게 됩니다.

문법은 다음과 같습니다.

if (조건1){
    문장1;
    ....
}
else if (조건2){
    문장2;
    ....
}
else {
    문장3;
    ....
}

조건1이 참인 경우 문장 1만 실행되며, 조건1이 거짓이며 조건2가 참이라면 문장2가 실행됩니다. 문장3은 위의 조건이 모두 거짓이라면 실행됩니다.

switch 문

if문과 같이 조건 제어문이며, else~if문과 유사하지만 switch문은 변수의 값에 따라 코드를 실행할 수 있게 제어할 수 있습니다.
변수값에 따라 실행문이 선택되기 때문에 조건식이 많아질수록 더 복잡해지는 if문보다 코드가 간결하고 가독성이 좋은 장점이 있습니다.

switch(표현식){ case 1: 문장1; …. break; case 2: 문장2; …. break; case 3: 문장3; …. break; defalut: 문장 n; …. }

표현식의 값이 case문의 값과 같으면 case문 내부의 문장을 실행하고 break문을 만나면 블록의 실행을 멈춥니다. 만약 일치된 값이 없으면 default문 내부 문장을 실행합니다. 조건식과 case문의 값들은 모두 정수형이어야 합니다.

break문은 여러 case문 중 하나의 case문만 실행되게 합니다. 만약 case문에 break문이 없으면 다음 case문도 실행하게 됩니다.

case문은 순서대로 배열할 필요는 없으며, default문도 마지막 case문일 필요가 없습니다. default문이 마지막에 나타날 경우 break문은 생략할 수 있으나 default문이 case문 사이에 배치될 경우 break문은 필요합니다.

반복문

주어진 조건이 충족이 될 때까지 반복적으로 문장을 수행 시키는 명령문입니다.
프로그램을 처리하는 부분에 있어서 반복적인 형태가 많기 때문에 가장 많이 사용되는 제어문 중 하나입니다.

반복문을 활용하면 프로그램에서 똑같은 문장을 여러번 코딩하는 중복성을 제거하여 소스코드를 간결하게 표현할 수 있으며 프로그램에 필요한 시간을 줄이고 프로그램의 효율적인 유지, 보수할 수 있습니다.

for

반복문의 대표라고 할 수 있을 만큼 가장 많이 사용되는 반복문입니다.

반복의 횟수를 알고 있을 때 주로 사용합니다.

for(초기화식; 조건식; 증감식){
    실행문;
}

for문에서 초기화식이 가장 먼저 실행되고, 조건식이 참이면 실행문을 실행시킵니다.
조건식이 거짓이 나온다면 for문은 실행하지 않고 끝나게됩니다.

실행문이 모두 실행되면 증감식을 실행시키고 다시 조건식으로 가서 참이 나오면 다시 실행문을 실행시킵니다.

초기화식은 조건식, 실행문, 증감식에서 사용할 변수를 말 그대로 초기화를 하는 역할을 합니다.

while

반복횟수를 알지 못하고 특정 조건이 만족되어야 하는 경우에 주로 사용합니다.

while(조건식){
    실행문;
}

조건식이 참일 경우에 계속해서 반복하는 반복문이며, 거짓이 나온다면 반복 실행을 멈추고 반복문을 종료하게 됩니다.

조건식이 참일 경우 실행문을 실행하고 다시 조건식으로 돌아가 참인지 거짓인지 평가합니다.
또 참이 나오면 다시 실행문을 실행시키고 다시 조건문을 평가합니다.
이 순서로 반복을 하다 조건문이 거짓이 나오면 while문을 종료합니다.

do-while문

while문과 비슷하나 반복 조건식을 검사하는 것이 반복해야할 문장들 다음에 위치한다는 것이 다릅니다. 그러므로 while문과 달리 반복 문장이 최소한 한번은 실행됩니다. 따라서 반복 문장이 적어도 한번은 실행되어야 하는 경우에 사용하는 것이 좋습니다.

do {
    실행문;
}while(조건식);

실행문을 실행한 뒤에 조건문이 참인지 거짓인지 평가합니다. 참일 경우 다시 실행문을 실행하고 다시 조건문을 평가합니다. 이 순으로 반복을 하다 조건문이 거짓이 나오면 do-while문을 종료합니다.

분기문

조건문과 반복문에 중간에서 주어진 조건의 흐름을 바꿀 수 있는 구문입니다.

break

switch문에서 살펴본 break의 용도 이외에도 for문, while문 등 반복문을 실행 중지할 때 사용을 합니다.

for(조건식1){
    실행문;
    if(조건식2){
        break;
    }
}

조건식1이 참일경우 for문의 실행문을 실행하며, 실행 중 if문의 조건식2가 참이되어 break문이 사용되면 for문은 종료됩니다.

continue

반복문에만 사용되는데, 반복을 건너뛰는 역할을 합니다. 건너뛰기 때문에 다음 반복은 진행되는데 반복문이 종료되는 것은 아닙니다.

for(조건식1){
    실행문1;
    if(조건식2){
        continue
    }
    실행문2;
}

조건식1이 참일경우 for문의 실행문1을 실행하며, 실행 중 if문의 조건식2가 참이 되어 continue문이 사용되면 실행문2를 건너뛰고 다시 조건식1을 평가합니다.

Date:     Updated:

카테고리:

태그:

Cpp 카테고리 내 다른 글 보러가기

댓글남기기