본문 바로가기
수업 복습/C 복습 노트

[C언어] C언어 수업 5차시

by LimitLog 2021. 4. 6.
 

1. 반복 제어문

동일한 명령을 여러 번 실행하고자 할 때 명령을 여러 번 기술하지 않고, 반복 명령에 의해 명령을 여러 번 호출하는 것을 말한다. C에서 지원하는 반복문에는 for, while, do-while이 있다.

 

 

 

2. For

1
2
3
4
5
6
7
8
9
int main() { //반복문
    int cnt;
    for (cnt = 0; cnt <= 10; cnt++) { 
        //(cnt변수를 0으로 초기화, 단 한 번 실행; 조건: cnt가 10보다 같거나 작을 때까지; cnt++: 증감식 처리) -> 조건이 참일 경우 계속 for문의 코드블럭 내 코드를 실행한다.
        printf(" >%2d번째 수행  ...  카운트 변수 cnt = %d\n",cnt+1,cnt); //%2d 로 입력해 두 자릿수 고정으로 출력 (빈 자릿수는 공백)
    }
    printf(" >> 반복문을 총 %d회 수행하였습니다...\n",cnt);
    return 0;    
}
cs

 

다음과 같이 for문 안에서 사용할 변수를 직접 선언해 쓸 수도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void main() {
    int hap = 0, max = 0, hol_hap = 0;
    printf(" > 정수를 입력하세요. ");
    scanf("%d",&max);
 
    for (int count = 1; count <= max; count++) {
        hap += count; //hap = hap+count;
        printf(" >%2d 까지의 누적 합 = [%d]\n", count, hap);
    }
    for (int count = 1; count <= max; count+=2) {
        hol_hap += count;
        printf(" >%2d 까지의 누적 홀수의 합 = [%d]\n", count, hol_hap);
    }
    printf(" >> [%d] 까지의 누적 합 = [%d]\n", max, hap);
    printf(" >> [%d] 까지의 누적 홀수의 합 = [%d]\n", max, hol_hap);
}
cs

 

 

 

3. While과 Do - While

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
    char ch;
 
    ch = 'A';
    while (ch <= 'Z') { //괄호 내 조건이 참일 경우
        printf("%c ", ch++); //코드블록 내 코드 수행
    }
    printf("\n");
 
    ch = 'A';
    //do-while은 반복조건을 마지막에서 검사한다. 따라서 반복문 내 코드를 무조건 한 번은 수행한다.
    do {
        printf("%c ", ch++);
    } while (ch <= 'Z'); //세미콜론이 반드시 필요하다
    printf("\n");
 
    return 0;
}
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main() {
    int sum = 0;
    int temp = 0;
 
    do {
        printf(" > 정수 입력 (0 입력시 종료) : ");
        scanf("%d",&temp);
        sum += temp;
    } while (temp != 0);
 
    printf(" >> 합계 : %d\n",sum);
 
    return 0;
}
cs

 

 

 

4. 조건 제어문과 반복 제어문 응용

아래는 입력받은 숫자가 소수인지 아닌지 여부를 확인하는 소스코드이다. 참고로, bool 타입 변수를 선언하기 위해서는 <stdbool.h> 헤더 파일을 추가해주어야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main() {
    int num, i;
    bool prime;
 
    printf(" Enter the number ? ");
    scanf("%d",&num);
 
    prime = true//소수 여부를 확인할 변수
    for (i = 2; i <= num / 2; i++) {
        //i가 2부터 입력한 수를 2로 나눈 값까지 돈다.
        //어차피 약수는 중앙을 기준으로 대칭되는 구조이기 때문에 절반만 체크
        if (num % i ==0) { //딱 나눠떨어지는 수가 있을 경우
            prime = false;
            break//루프를 탈출한다.
        }
    }
 
    if (prime) printf(" The number is prime.\n");
    else printf(" The number is not prime.\n");
    return 0;
}
 
cs

 

 

 

5. 이중 반복 제어문

구구단 출력하기

1
2
3
4
5
6
7
8
9
10
11
int main() {
    for (int i = 2; i < 10; i++) {//i가 10까지 돈다
        printf(" %d단 : ",i);
        for (int j = 1; j < 10; j++) { //i가 1씩 증가할 때마다 j가 1~9까지 돈다.
            printf("%d*%d=%2d  ",i,j,i*j);
        }
        printf("\n");
    }
 
    return 0;
}
cs

 

별 찍기

1
2
3
4
5
6
7
8
9
10
11
void main() {
    int i, j;
 
    for (i = 1; i <=5; i++) {
        printf(" > %d행 : ",i);
        for ( j = 1; j <= i;j++) {
            printf("*");
        }
        printf(" ... 1부터 %d까지 반복 출력\n",i);
    }
}
cs

'수업 복습 > C 복습 노트' 카테고리의 다른 글

[C언어] C언어 수업 8차시  (0) 2021.05.04
[C언어] C언어 수업 7차시  (0) 2021.04.20
[C언어] C언어 수업 6차시  (0) 2021.04.13
[C언어] C언어 수업 4차시  (0) 2021.03.30
[C언어] C언어 수업 2, 3차시  (0) 2021.03.23

댓글