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 |
댓글