Programming/C C++
 조건문

(1) if

if 문의 기본 형식은 다음과 같습니다.
if (식)
    실행문;
식의 결과가 참(true)이면 그 아래 실행문 부분이 실행됩니다. 만약 식의 결과가 거짓(false)인 경우에 별도의 처리가 필요하다면 else 구문을 사용합니다.
if (식)
    실행문;
else
    실행문;
C++ (C로 부터 파생된 대부분의 언어가 마찬가지) 에서 거의 모든 흐름제어문은 그 아래 단 하나의 문장만을 제어문의 제어범위로 판단합니다. 따라서 여러 문장의 실행문 전체를 하나의 제어범위에 두려면 중괄호({와 })를 사용해야 합니다.
if (식) {
    실행문1;
    실행문2;
}
else {
    실행문3;
    실행문4;
    실행문5;
}
if문에 사용되는 식(조건)이 많은 경우 else if 문을 사용해 다양한 실행의 조건을 지정할 수 있습니다.
if (식1)
    실행문;
else if (식2)
    실행문;
else if (식3)
    실행문;
else
    실행문;
식1 의 결과가 거짓인 경우 식2를.. 식2가 거짓인 경우 식3을 확인하고 모든 식이 거짓이면 마지막 else 아래 실행문을 실행하게 됩니다.

(2) switch

switch 문의 기본형식은 다음과 같습니다.
switch(식)
{
    case 값1:
        실행문1;
        break;
    case 값2:
        실행문2;
        실행문3;
        break;
    case 값3:
        실행문4;
        break;
    default:
        실행문5;
}
switch 문의 괄호에 들어간 식의 값이 값1에 해당하면 case 값1 아래에 실행문 실행하고 값2에 해당하면 case 값2 아래의 실행문2와 3을 실행합니다. case아래 실행문은 여러 문장이라해도 중괄호({})의 지정이 불필요 하며 각 case의 값은 반드시 세미콜론(;)이 아닌 : 으로 지정되어야 합니다.

case아래 break; 문은 실행을 정지시키는 역활을 하는데 만약 위 예제에서 case 값2 아래에 break;가 존재하지 않으면 case 값3 부터 그 아래 모든 실행문을 실행하게 됩니다.

마지막 default문은 식이 어떠한 case 에도 해당되지 않는 경우 실행하게 되는 부분입니다. default는 필요없다면 생략이 가능합니다. 또한 default에는 break;문도 존재하지 않는데 어차피 그 아래 더이상 실행할 구문이 없기 때문입니다.

 반복문

(1) for

for 문의 기본형식은 다음과 같습니다.
for (초기화; 조건; 반복)
    실행문;
for문은 우선 초기화 문장을 실행한뒤 조건부분을 판단하고 조건이 참(true)이면 그 아래 실행문을 실행한 뒤 반복을 수행하는 순서로 동작하게 됩니다.

예를 들어
for (int i = 0; i <= 10; i++) {
    cout << "현재 i의 값 : " << i << endl;
}
위 예제에서 for는 우선 i의 값을 0으로 초기화 한 후 실행 조건을 판단합니다. 실행 조건은 i <= 10 이므로 i는 10보다 작거나 같아야 결과는 true가 됩니다. 따라서 i의 값은 0이기 때문에 for안에 cout로 시작하는 실행문을 실행합니다.

실행문을 한번 실행하고 나면 이번에는 반복부분의 문장을 실행합니다. for에서 반복은 i++이므로 i의 값을 1증가 시킵니다.

그리고 다시 조건을 확인하고 실행문을 실행하는 식으로 반복을 수행합니다.

(2) while

while 문의 기본형식은 다음과 같습니다.
while (조건)
    실행문;
while에서 조건은 해당 실행문을 실행할지 여부를 판단하는 역활을 합니다. 예를 들어
int i = 0;
while (i <= 10) {
    cout << "현재 i의 값 : " << i << endl;
   
    i++;
}
위 예제의 경우 우선 변수 i의 값을 0으로 초기화 하고 while문을 실행합니다. i의 값은 0이므로 i <= 10 조건에 true가 됩니다. 따라서 while안에 문장을 실행합니다.

while안에는 i++; 로 i의 값을 증가시켜 주고 있는데 만약 이 문장이 없으면 i의 값은 계속 0이 되므로 흔히 '무한루프'라고 하는 무한대의 반복에 빠지게 됩니다. while문을 사용할때 가장 주의해야할 부분 입니다.

(3) do while

while와 do while의 차이는 조건판단입니다. while는 실행문을 실행하기 전에 조건을 판단하지만 do while문은 실행문을 반드시 한번은 실행하고 난뒤 계속 반복할지 여부를 조건으로 판단하게 됩니다.
do {
    실행문; //반드시 한번은 실행함
} while (조건)
 점프문

(1) goto

goto는 지정된 레이블로 실행의 흐름을 이동시키는 구문입니다.
int i = 0;
while (i <= 10) {
    cout << "현재 i의 값 : " << i << endl;

    i++;

    if (i == 9)
        goto nine;
}

nine:
    cout << "i의 값이 9가 됨" << endl;
while에서 i문을 1씩 증가시켜 가며 i가 11이 될때까지(i <= 10 이므로 i가 10이 되어도 true입니다.) 반복수행 하다가 i가 9가 되는 경우 if문의 의해서 goto문이 실행됩니다.

goto는 nine;로 레이블을 지정하고 있고 따라서 프로그램의 흐름은 while문을 벗어나 아래 nine: 라는 부분으로 이동하여 그 아래 문장을 실행하게 되는 것입니다.

(2) break; / continue;

break;는 반복문의 흐름을 완전히 중단시키는 역활을 하며 continue;는 단 한번 스킵하는 역활을 합니다.
int i = 0;
while (i <= 10) {
    cout << "현재 i의 값 : " << i << endl;

    i++;

    if (i == 5)
        break;
}
위 while문에서는 if 문을 통해 i가 5값인 경우 break;문을 지정하였습니다. 따라서 i가 5가 되면 while 처리가 완전히 중단되고 while문을 빠져 나오게 됩니다.
int i = 0;
while (i <= 10) {
    i++;
    if (i == 5)
        continue;

    cout << "현재 i의 값 : " << i << endl;
}
위 예제와 같으나 break;대신 continue;문이 지정되었고 i가 5인지를 판단하는 if가 실제 처리문 위에 있습니다. 이 예제는 i가 5가 되는 경우 while 처리를 중단하는 것이 아니라 그 아래 실행문을 한번만 건너뛸 뿐입니다.


(3) return;

return은 주로 함수내에서 특정한 값을 반환하고 함수의 처리를 중단하는 용도로 사용됩니다.

'Programming > C C++' 카테고리의 다른 글

[Visual C++] 함수  (0) 2012.07.04
[Visual C++] 연산자  (0) 2012.07.03
[Visual C++] 흐름제어  (0) 2012.07.02
[Visual C++] 형변환  (0) 2012.06.29
[Visual C++] 나열형(enum)  (0) 2012.06.28
[Visual C++] 상수  (0) 2012.06.27
0 0