반응형
While, For
While문은
while(expression)
statement
For문은
for(expr1; expr2; expr3)
statement
이렇게 쓸 수 있고, For문을 While문으로 바꾸면 아래와 같은 형식으로 표현할 수 있다.
expr1;
while(expr2){
statement
expr3;
}
expr1과 expr3는 대입 혹은 함수 호출이 가능하고, expr2는 논리 표현식이다.
expr2에 사용되는 i
등의 index 변수는 루프 안에서 변경이 가능하고, 루프가 종료됐을 때 그 값을 유지한다.
expr1, expr2, expr3 중 어떤 것도 생략이 가능하다. 그러나 세미콜론 ;
는 생략되면 안된다.
for(; ; )
statement
이렇게 작성하면 statement를 무한히 실행하게 된다.
For문을 이용해서 다음과 같은 함수를 작성할 수 있다.
#include <ctype.h>
int atoi(char s[]){
int i, n, sign;
for(i = 0; isspace(s[i]); i++) ;
sign = (s[i] == '-') ? -1 : 1;
if(s[i]=='+' || s[i]=='-')
i++;
for(n = 0; isdigit(s[i]); i++)
n = 10 * n + (s[i] - '0');
return sign * n;
}
For 문을 이용해서 shell sort를 해볼 수도 있다.
#include <ctype.h>
void shellsort(int v[], int n){
int gap, i, j, temp;
for(gap = n/2; gap > 0; gap /=2)
for(i = gap; i < n; i++)
for(j=i-gap; j>=0 && v[j]>v[j+gap]; j-=gap){
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}
}
Shellsort에 관한 내용은 이 사이트 참고
반응형
'Programming Tools > TCPL C Language' 카테고리의 다른 글
[C Language] Chap.3 Control Flow - Break, Continue (0) | 2021.06.10 |
---|---|
[C Language] Chap.3 Control Flow - do-while loop(do-while 문) (0) | 2021.06.10 |
[C Language] Chap.3 Control Flow - Switch (제어문 - switch 문) (0) | 2021.06.07 |
[C Language] Chap.3 Control Flow - Statement, Block, if-else (제어문 - 문장, 블록, if-else문) (0) | 2021.06.06 |
[C Language] Sequence Point (시퀀스 포인트) (0) | 2021.06.05 |