C 프로그래밍 : 현대적 접근 06 | 루프
by 브이담곰
1 while문
while문은 C언어 반복문중에서 가장 간단하고 중요한 구문이다!
while ( expression ) statement
while문이 실행되면, 우선 제어식이 평가된다. 제어식의 값이 0이 아니라면(참) 루프 본문이 실행된 다음 제어식을 다시 평가한다.
i = 1;
while (i < n)
i = i * 2;
중괄호가 굳이 필요하지 않은 상황이더라도 몇몇 프로그래머들은 중괄호를 추가해준다.
while (i < n) { /* 중괄호 사용 가능하나 필수는 아님 */
i = i * 2;
}
무한루프
만약 제어식이 언제나 0이 아닌 값을 갖는다면, while문은 종료되지 않는다.
[관용구]
while (1) …
위와 같은 while문은 루프 본문에 루프 밖으로 벗어나게 해주는 구문(break, goto, return) 이 없거나 프로그램이 종료되게 하는 함수를 호출하지 않는다면 평생 실행된다.
2 do문
do문은 제어식을 루프 본문 실행 이후에 판별한다.
do statement while ( expression ) ;
do 문이 시행되면 우선 루프 본문이 먼저 실행이 되고 나서 제어식이 평가된다.
i = 10;
do {
printf("T 빼기 %d, 세는 중\n", i);
--i;
} while (i > 0);
3 for
for ( expr1 ; expr2 ; expr3 ) statement
for문 관용적 표현
for문은 일정 횟수 또는 구간에서 변수를 증감시키는 동안 반복을 할 때 매우 유용한 반복문이다. 주로 n번 숫자를 세야할 때 for문이 사용된다.
[관용구]
for (i = 0; i < n; ++i) …
● 0에서 n-1까지
[관용구]
for (i = 1; i <= n; ++i) …
● 1에서 n까지
for문에서 표현식 생략하기
첫번째 표현식이 생략된다면 루프가 실행되기 이전에 아무런 초기화도 일어나지 않는다.
i = 10;
for (; i > 0; --i) {
printf("T 빼기 %d, 세는 중\n", i);
}
세번째 표현식이 없는 경우 우리는 루프 본문을 통해 두번째 표현식이 언젠가는 거짓이 되게 만들어주어야한다.
for (i = 10; i > 0;) {
printf("T 빼기 %d, 세는 중\n", --i);
}
C99에서의 for문
C99에서는 for문의 첫번째 표현식은 선언문으로 대체할 수 있다.
for (int i = 0; i < n; ++i) {
…
}
쉼표 연산자
for (sum = 0, i = 1; i <= N; ++i) {
sum += i;
}
4 루프에서 벗어나기
break
break문은 가장 안쪽의 while문, for문, do문, switch문에서 제어를 밖으로 옮긴다.
while (…) {
switch (…) {
…
break;
…
}
}
continue문
n = 0;
sum = 0;
while (n < 10) {
scanf("%d", &i);
if (i == 0) {
continue;
}
sum += i;
++n;
/* continue jumps to here */
}
goto
해당 구문에 표식label이 있는 한 함수 내의 그 어느 구문으로든 도약할 수 있다
for (d = 2; d < n; ++d) {
if (n % d == 0) {
goto done;
}
}
done:
if (d < n) {
printf("%d is divisible by %d\n", n, d);
} else {
printf("%d is a prime\n", n);
}
'programming > C' 카테고리의 다른 글
C 프로그래밍 : 현대적 접근 05 | 선택문 (0) | 2024.07.26 |
---|---|
C 프로그래밍 : 현대적 접근 04 | 표현식 (0) | 2024.07.26 |
C 프로그래밍 : 현대적 접근 03 | 서식 입출력 (0) | 2024.07.26 |
C 프로그래밍 : 현대적 접근 02 | C 기초 (0) | 2024.07.26 |
C 프로그래밍 : 현대적 접근 01 | C 입문 (0) | 2024.07.25 |
블로그의 정보
농담곰담곰이의곰담농
브이담곰