복습 : if-else문
if ( 조건 1 ) {
/* 조건 1이 참일 때 수행할 문장 */
}
else if ( 조건 2 ) {
/* 조건 2가 참일 때 수행할 문장 */
}
else {
/* 조건 1, 2 모두 거짓일 때 수행할 문장 */
}
C
복사
이론 (1) : switch
int number;
scanf("%d", &number);
switch(number){
case 1:
printf("case 1");
break;
case 2:
printf("case 2");
break;
case 3:
case 4:
printf("case 3 and 4");
break;
default:
printf("default");
}
C
복사
문제 (1)
•
백준 9498 시험 성적 (switch문으로 풀어봅시다!)
이론 (2) : 반복문(for, while)
•
문법 기초 (for문)
for (초기식; 조건식; 증감식) { /* 실행 문장 */ }
int sum = 0;
// int i = 0; // dev에서는 외부에서 i를 초기화해두고 for문을 사용해야 함
for(int i = 0; i < 10; i++) { sum += i; }
C
복사
•
문법 기초 (while문)
while (조건식) { /* 실행 문장 */ }
int sum = 0;
int i = 0;
while(i < 10) { sum += i; i++; }
C
복사
•
무한루프를 돌리는 2가지 방법
// 초기화, 조건식, 증감식 없음 -> 무한루프
for (;;) { /* 무한반복할 문장 */ }
C
복사
// 조건식이 항상 참(true) -> 무한루프
while(1) { /* 무한반복할 문장 */ }
int testcase;
scanf("%d", &testcase);
while(testcase--) { /* ... */ }
C
복사
•
건너뛰기(continue), 탈출(break)
for(int i = 0; i < 10; i++) {
if (i % 2 == 0) continue;
printf("now odd number : %d\n", i);
}
C
복사
for(int i = 0; i < 10; i++) {
if (i > 5) break;
}
C
복사
•
중첩 반복문(2중 for문)
for (int i = 2; i < 4; i++) {
for (int j = 1; j < 10; j++) {
printf("%d * %d = %d\n", i, j, i * j);
}
}
C
복사
i | j | print |
2 | 1 | 2 * 1 = 2 |
2 | 2 * 2 = 4 | |
3 | 2 * 3 = 6 | |
4 | 2 * 4 = 8 | |
5 | 2 * 5 = 10 | |
6 | 2 * 6 = 12 | |
7 | 2 * 7 = 14 | |
8 | 2 * 8 = 16 | |
9 | 2 * 9 = 18 |
i | j | print |
3 | 1 | 3 * 1 = 3 |
2 | 3 * 2 = 6 | |
3 | 3 * 3 = 9 | |
4 | 3 * 4 = 12 | |
5 | 3 * 5 = 15 | |
6 | 3 * 6 = 18 | |
7 | 3 * 7 = 21 | |
8 | 3 * 8 = 24 | |
9 | 3 * 9 = 27 |
문제 (2)
•
백준 2741 N 찍기 (for문 기초, 증감식 적응)
•
백준 2742 기찍 N (for문 기초, 증감식 적응)
•
백준 2793 구구단 (for문 기초)
•
2021년 중간고사 문제 A 평균 관객수 구하기(for문, 사칙연산, 형변환)