티스토리 뷰

C언어/K.N.King C PROGRAMMING

Chapter 6

소심야채 2020. 8. 26. 18:52

Loops

 

 

 

The while Statement

 

i = 10;

while( i > 0) {

    printf("T minus %d and counting\n", i);

    i--;

}

 

■ 제어 표현식은 while 루프가 종료 될 때 거짓이다. 따라서 i>0으로 제어되는 루프가 종료되면 i는 0보다 작거나 같아야한다.

 

■ 제어 표현식은 루프 본문이 실행되기 전에 테스트되기 때문에 본문이 한 번도 실행되지 않을 수 도 있다. i가 음수 또는 0값을 가지면 루프는 아무 작업도 수행하지 않는다.

 

■ while 문은 종종 다양한 방식으로 작성 될 수 있다. 예를 들어, printf 호출 내에서 i를 줄임으로써 카운트 다운 루프를 더 간결하게 만들 수 있다.  ex) printf("T minus %d and counting\n", i--);

 

 

 

The do Statement

 

■ do 문은 while 문과 밀접한 관련이 있다. 사실, do 문은 본질적으로 루프 본문을 실행할 때마다 제어 표현식이 테스트되는 while문이다.

 

■ do 문이 실행되면 루프 본문이 먼저 실행 된 다음 제어 표현식이 평가된다. 표현식의 값이 0이 아니면 루프 본문이 다시 실행 된 다음 표현식을 한번 더 평가한다.

 

 

 

 

The for Statement

 

■ for문은 for( expr1 ; exrp2 ; exrp3) statement 형식으로 이루어진다.

 

■ for 문은 while문과 밀접한 관련이 있다. 실제로 몇 가지 드문 경우를 제외하고 for 루프는 항상 동일한 while 루프로 대체 될 수 있다.

    expr1;

    while ( expr2 ) {

       statement

       expr3;

    }

 

■ 위의 패턴에서 알 수 있듯이 expr1은 루프가 실행되기 전에 한 번만 수행되는 초기화 단계이다. expr2은 루프 종료를 제어한다.(expr2의 값이 0이 아닌 한 루프는 계속 실행된다) expr3은 각 루프의 반복이 끝날때 수행되는 연산이다.

 

 

Omitting Expressions in a for Statement

 

■ 일부 for 루프는 일반적으로 루프를 제어하는 세 가지 표현식이 모두 필요하지 않을 수 있으므로 C에서는 일부 또는 모든 표현식을 생략 할 수 있다.

 

 

The Comma Operator

 

■ 쉼표 식은 두 단계로 평가된다. 먼저 expr1이 평가되고 해당 값이 버려진다. 둘째로, expr2가 평가된다. 그 값은 전체 표현식의 값이다. expr1을 평가하는 것은 항상 부작용(side effect)이 있어야 한다. 그렇지 않은 경우 expr1의 목적이 없다.

 

 

The continue Statement

 

■ break 제어문은 루프의 끝을 지나서 옮겨지는 반면에 continue 제어문은 루프 바디의 끝 직전으로 옮겨진다.

 

 

 

The Null Statement

 

■ 공백(null) 또한 문장이 될 수 있다. 끝에 세미클론을 제외하고 기호가 없다.

 

ex) i = 0; ; j = 1;

■ 위 예시에는 i 에대한 할당, null 문 및 j 에 대한 할당 총 세 가지 문이 포함되어 있다.

 

■ null 문은 주로 바디가 비어있는 루프를 작성하는 데 유용하다.

ex) for (d = 2; d < n && n % d != 0; d++);

 

'C언어 > K.N.King C PROGRAMMING' 카테고리의 다른 글

Chapter 8  (0) 2020.09.01
Chapter 7  (0) 2020.08.27
Chapter 5  (0) 2020.08.25
Chapter 4  (0) 2020.08.24
Chapter 3  (0) 2020.08.20
댓글