본문 바로가기

Program Languege/혼자 연구하는 C/C++

4.제어문

조건문

 

조건문이란 주어진 조건에 따라 명령의 실행 여부를 결정하는 문장이다.

 

 

if(조건)

{

명령;

}

 

 소괄호() 안에 조건을 쓰고 이 조건이 만족할 때 실행할 명령을 중괄호{} 안에 작성한다. 명령이 하나밖에 없더라도 중괄호를 해주는 것이 좋다.

 

 

 연산자

조건 

 ==

좌변과 우변이 같다. 

 !=

좌변과 우변이 다르다. 

 >

좌변이 우변보다 크다. 

 <

좌변이 우변보다 작다. 

 >=

좌변이 우변보다 크거나 같다. 

 <=

좌변이 우변보다 작거나 같다. 

 

 

 

if(조건)

{

명령;

}

else

{

명령;

}

 

 if의 조건이 거짓인 경우에 실행할 명령을 else의 중괄호{}에 작성한다. if의 조건이 참인 경우 if의 중괄호의 명령이 실행되며 거짓인 경우 else의 명령이 실행된다.

 

 

 

for 반복문

 

for(초기식; 조건식; 증감식)

{

명령;

}

 

초기식 - 반복문은 보통 특정 변수가 일정한 범위에 있는 동안 실행된다. 이때 반복문을 통제하는 변수를 제어변수라고 한다. 초기식은

제어 변수의 초기값을 지정하며 루프가 시작될 때 한 번만 수행된다.

 

조건식 - 반복문이 언제까지 실행될 것인가를 지정하며 이 조건이 참인동안 계속 루프를 돈다. 루프 실행을 계속할 조건이므로 조건이

거짓이 되면 루프를 탈출한다. 조건을 나타내므로 i < 10 또는 count <= 100 과 같은 제어 변수에 대한 비교 연산문이 온다.

 

증감식 - 한 번 루프를 돌 때 제어 변수를 얼마나 증감시킬 것인가를 지정한다. i = i + 1 같이 제어 변수의 값을 변화시키는 연산문이

온다. 루프가 한 번 실행될 때 증감식도 한 번 실행된다.

 

명령 - 반복 실행될 명령이다. 하나의 명령을 쓰더라도 중괄호{}를 사용하여 반복하는 구간을 구분지어 주는 것이 좋다.

 

 

 

 

 

무한 루프

 

 무한 루프란 반복 횟수가 미리 정해져 있지 않고 무한히 반복되는 루프이다. 제어 변수를 사용하는 루프는 제어 변수가 일정한 범위에 있을 때만 반복하므로 실행 회수가 미리 정해져 있는데 비해 무한 루프는 실행 회수를 미리 알 수 없다.

 

 

for(;;)

{

명령;

}

 

 조건식을 명시하지 않으면 이 조건은 항상 참으로 평가되기 때문에 루프가 끝나지 않게 된다. 루프 자체에는 종료 조건이 포함되어 있지 않으며 명령을 실행하다가 일정한 조건이 되면 루프를 탈출하도록 다음과 같은 형태를 갖는 것이 좋다. 정말 무한히 반복된다면 루프 바깥의 코드가 실행될 수 없으므로 시스템 다운 상태가 되고 말 것이다.

 

for(;;)

{

명령;

 

if(탈출 조건)

{

break;

}

}

 

 

 

다중 루프

 

 다중 루프란 두 개 이상의 루프가 겹쳐 있는 제어 구조이다. 루프 안에는 반복의 대상이 되는 명령이 들어가는데 이 명령이 또 루프라면 이중 루프가 된다.

 

 

for(초기식; 조건식; 증감식)

{

for(초기식; 조건식; 증감식)

{

...

}

}

 

 

 

 

while 반복문

 

 

while(조건)

{

명령;

}

 

 

조건 - if(조건)에 조건과 동일하다. 이 조건이 참인 경우 계속해서 명령을 반복한다. 명령은 한둘이나 그 이상이 될 수 있다. 따로 초기식이나 증감식이 존재하지 않으므로 반복문을 끝낼 수 있도록 해야한다.

 

 

 

 

do while 문

 

 

do

{

명령;

}while(조건문);

 

 do while문은 다른 반복문과는 다르게 무조건 한번은 반복문을 실행하고 조건을 검사한다는 점이다. 그 외에는 while문과 동일하게 조건문만을 가지며 외부에서 초기식과 명령에서 조건에 대한 처리를 해주어야한다.

 

 

  • for문 : 가장 큰 특징은 제어 변수를 사용한다는 점이다. 루프를 통제하는 변수를 선언하고 이 변수가 일정한 범위의 값을 가지
              는 동안 명령을 계속 반복한다. 초기식, 조건식, 증감식이 포함되어 있어서 루프의 선두만 봐도 변수의 변화를 쉽게 파
              악할 수 있다.
  • while문 : 루프를 계속할 조건만 있고 초기식이나 증감식이 없다. 아예 제어 변수라는 개념이 없으며 루프 내부에서 조건식의 
                  진위 여부를 변경해야 한다. 사용자의 입력이나 네트워크의 변화, 특정 신호의 입력 등 언제 발생할지 모르는 조건
                  에 대해 반복할 때 적합하다.
  • do while문 : while문과 마찬가지로 제어 변수가 없고 반복 횟수가 가변적이지만 조건을 점검하는 시기가 다르다. 일단 명령
                      을 실행하고 조건을 점검한다.

 

 

 

 

 

switch문

 

  다중 선택문이란 하나의 변수 값을 평가하여 각 값에 대해 개별적인 처리를 지정할 수 있는 문장이다.

 

switch(변수(

{

case 0:

{

명령;

}

break;

 

case 0:

{

명령;

}

break;

 

case 0:

{

명령;

}

break;

 

default:

{

명령;

}

break;

}

 

 

 switch문 다음의 괄호 안에 평가할 변수를 적고 case문에 이 변수가 가질 수 있는 값과 이 값에 대한 처리 코드를 작성한다. case를 끝낼 때는 break문으로 switch 블록을 강제로 탈출해야한다. 원하는 만큼 얼마든지 작성할 수 있다. default는 case의 특별한 경우로 변수가 앞쪽 case에 있는 값 이 외의 값을 가질 때의 처리를 지정해야한다.

 

  1. switch문으로 평가할 수 있는 변수는 주로 정수형이다. int, unsigned, short 같은 정수형 변수에 대해서만 switch문을 쓸 수 있으며 실수나 사용자 정의형 등은 다중 선택에 사용할 수 없다. 문자형, 열거형 등은 정수형과 호환되므로 사용 가능하다.
  2. case 다음에는 반드시 정수 상수 하나가 와야 한다. 변수는 올 수 없고 범위 또한 나올 수 없다. 범위에 대한 처리를 원하면
    if문을 사용해야한다. 
  3. case문은 점프 위치를 지정하는 일종의 레이블이기때문에 case 0, case 1, case 2 순으로 작성할 필요는 없다.
    default 역시 끝에 와야하는 것은 아니지만 가독성을 위해 순서를 지켜주는 것이 좋다.
  4. default에 대한 처리가 필요 없다면 default는 생략해도 된다.
  5. break를 쓰지 않으면 해당 case문을 실행하고 밑에 있는 case문을 연달아 실행한다. 반드시 break처리를 해야하는 것은 아니며 이를 응용하여 한가지 값으로 여러 처리를 하는 것이 가능하다.

 

 

break

 

 반복문이나 switch문내에서 사용되며 루프를 강제로 벗어날 수 있다. for문이나 while문에서 break를 만나면 진위여부에 상관없이 반복문을 종료한다. 여러개의 반복문이 중첩되어 있는 경우 현재 루프 하나만 탈출한다.

 

 

 

continue

 

 루프의 나머지 부분을 무시하고 조건 점검부로 점프하여 루프의 다음 값을 실행하도록 하는 명령이다. for문의 경우 증감식을 실행하고 조건문을 점검하며 while문이나 do while문의 경우 바로 조건문을 점검한다.

 

 

 

 

 

 

 

- 출처 : 혼자 연구하는 C/C++

 

 

'Program Languege > 혼자 연구하는 C/C++' 카테고리의 다른 글

가변 인수  (0) 2014.04.08
3.변수  (0) 2014.02.07
2. 첫번째 예제  (0) 2014.02.04
01. 프로그래밍 입문  (0) 2014.02.04