홀로의 책방/코딩을 공부하자(C언어)

chapter4. switch문과 반복문

알 수 없는 사용자 2020. 1. 22. 22:28

1.정수 또는 문자선택

 swith문은 주어진 연산식이 문자형 또는 정수형이라면 그 값에 따라 case의 값과 일치하는 부분의 문장들을 수행하는 선택구문이다.

 

swith문은 표현식 exp 결과값 중에서 case의 값과 일치하는 항목의  문장을 실행한다.

switch문에서 switch, case, break, default는 키워드이며 연산식 exp의 결과값은 반드시 문자 또는 정수여야 한다.

              표현식 op 값을 평가하며 case문의 내부문장을 실행한다. break문을 만나면 switch문을 종료하고, break문이 없으면 다음 case로 무조건 이동하여 내부문장을 실행한다. 만족된 case값이 없으면 default 내부의 문장을 실행한다. 마지막 문장을 실행할경우 switch문을 종료한다.

 

switch문에서 하나의 case에 여러개의 정수를 콤마로 나열할 수 없다. 그래서  case를 여러번 쓰면된다.

 

switch (exp)

{

  case 1: case 2:

   stmt;

   break;

}

 

2.for문

반복문은 여러번 실행해야 하는 문장이 요구될 때 사용한다.

 

for ( init; cond; inc)

   stmt;

next;

 

1.초기화를 위한 init를 실행한다. 이 init는 한번만 수행

2.반복조건 cond를 평가해 0이 아닌 값이면 반복문의 문장 stmt를 실행한다. 그러나 반복조건 cond의 값이 거짓이면 

for문을 종료한다.

3.반복몸체인 실행한후 증감연산 inc를 실행한다.

4.다시 반복조건인 cond를 검사하여 반복한다.

 

 

for (i =1; i <= 10; i++)

prinf("%3d", i);

 

반복시작 -> i=1이고 1<=10보다 작으므로 i값인 1이 출력된다. 반복하여 i는 2가 되고 2를 출력한다. i가 10이 될때까지 반복하고 11이 되는 순간 10보다 크다 -> 반복 종료

변수 i와 같이 반복의 횟수를 제어하는 변수를 제어변수라 한다. 

 

 

다양한 형태로 for문을 짤수있다.

 

3. while문

  while문은 for문보다 간단하며 모든 반복기능을 수행할 수 있다.

 

while (cond)

  stmt;

next;

 

초기화구문이 없다. 반복검사를 실행한후 참이면 stmt를 실행한다. 

 

 

 for문은 주로 반복 횟루를 제어하는 제어변수를 사용하며 초기화와 증감 부분이 있는 반복문에 적합하다.

while문은 반복 횟수가 정해지지 않고 특정한 조건에 따라 반복을 결정하는 구문에 적합하다.

서로 변환이 가능하다.

 

4. do while문

for문과 while문 모두 반복 전에 반복 조건을 평가한다. do while문은 반복 몸체 수행 후에 반복 조건을 검사한다.

 

do

  stmt;

while (cond);

next;

 

5.break와 continue문

반복 내부에서 반복을 종료하려면 break문 을 사용한다.

continue문은 반복 몸체의 나머지 부분을 실행하지 않고 다음 반복을 계속 유지하는 문장이다.

for문의 경우 continue를 만나면 증감연산부분으로 이동하여 다음 반복 실행을 계속한다.

while문과 do while문에서는 continue문 을 만나면 조건 검사로 이동하여 실행한다.

 

6. 중첩된 for문