정보처리기사
[정보처리기사] C언어 특강 18 ~ 1강 정리(복잡한 제어문, 반복문 )
jaeheon0520
2024. 10. 3. 12:43
연습문제
#include <stdio.h>
int main() {
int a = 120, b = 45;
while (a != b) {
if (a > b) a -= b; // a = 75 b = 45, a = 30 b = 45, a = 30 b = 15, a = 15 b = 15
else b =- a;
}
printf("%d", a); // 15
}
반복문 옵션
(1) continue : 더이상 아래 문장을 실행하지 않고, 반복문 처음으로 돌아감
(2) break: 반복문을 빠져나감
#include <stdio.h>
int main() {
int i, sum = 0;
for (i = 1; i <= 10; i +=2) { // 1, 3, 5, 7, 9 중에
if (i % 2 && i % 3) continue;
sum += i; // 12
}
printf("%d", sum); // 12
return 0;
}
for (int i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
printf("i: %d, j: %d", i, j);
}
}
// 0 0
// 0 1
// 1 0
// 1 1
// 반복문 밖에 저장되어 있는 i,j 는 모두 2
for (i = 0; i < 3; i++) {
if(i == 1) continue;
sum++;
}
// sum = 2
// i = 3
for (i = 0; i < 3; i++) {
if(i == 1) break;
sum++;
}
// sum = 1;
// i = 1
연습문제 ( 주의! )
#include <stdio.h>
void main() {
int i, j, sum = 0;
for (i = 1; i < 10; i++) {
for(j = 1; j < 10; j++) {
if (j % 3 == 0) continue; // (9 - 3) * 7 = 42
if (i % 4 == 0) break;
sum++;
}
}
printf("%d", sum); // 42
}
// continue와 break는 포함되어 있는 반복문 하나만 빠져나온다, 이중 반복문을 모두 빠져나오는게 아니다