devjingood
2025. 3. 12. 01:18
2025. 3. 12. 01:18
while문에 의한 문장의 반복
반복문이란 무엇인가
while문은 반복을 명령하는 문장이다.
while(num<3) // 반복의 조건은 num<3
{
printf("Hello world! \n");
num++;
}
#include <stdio.h>
int main(void)
{
int num=0;
while(num<5)
{
printf("Hello world! %d \n", num);
num++; // 만약 이를 주석 처리하면 Hello world! 0이 무한대로 출력 되면서 무한 루프에 빠지게 된다.
}
return 0;
}
// 결과
Hello world! 0
Hello world! 1
Hello world! 2
Hello world! 3
Hello world! 4
- 반복문 구성에 있어서 중요한 것은 반복의 조건을 무너뜨리기 위한 최소한의 연산
- 반복문도 들여쓰기 해서 사용
- 반복의 대상이 하나의 문장이라면 중괄호는 생략 가능
#include <stdio.h>
int main(void)
{
int dan=0, num=1;
printf("몇 단? ");
scanf("%d", &dan);
while(num<10)
{
printf("%d x %d = %d \n", dan, num, dan*num);
num++;
}
return 0;
}
// 결과
몇 단? 7
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
while문의 중첩
#include <stdio.h>
int main(void)
{
int cur=2;
int is=0;
while(cur<10) // 2단부터 9단까지 반봅
{
is=1; // 새로운 단의 시작을 위해서
while(is<10) // 각 단의 1부터 9의 곱을 표현
{
printf("%d x %d = %d \n", cur, is, cur*is);
is++;
}
cur++; // 다음 단으로 넘어가기 위한 증가
}
return 0;
}
// 결과
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
do~while문에 의한 문장의 반복
- while문과의 차이점: 반복을 검사하는 시점
- while문과는 반복 조건의 검사위치가 다르며, 이로 인해서 반복 영역을 최소한 1회 이상 실행한다는 점이 유일한 차이점
do // 일단 실행!
{
printf("Hello world! \n");
num++;
} while(num<3); // 반복 여부 확인!
do~while문이 자연스러운 상황
- 반복 영역이 무조건 한 번 이상 실행되어야 하는 상황
#include <stdio.h>
int main(void)
{
int total=0, num=0;
do
{
printf("정수를 입력해주세요.(종료를 원하시면 0): ");
scanf("%d", &num);
total+=num;
printf("현재까지 더한 값: %d \n", total);
} while (num);
printf("최종합: %d \n", total);
return 0;
}
// 결과
정수를 입력해주세요.(종료를 원하시면 0): 10
현재까지 더한 값: 10
정수를 입력해주세요.(종료를 원하시면 0): 5
현재까지 더한 값: 15
정수를 입력해주세요.(종료를 원하시면 0): 28
현재까지 더한 값: 43
정수를 입력해주세요.(종료를 원하시면 0): 449
현재까지 더한 값: 492
정수를 입력해주세요.(종료를 원하시면 0): 1372
현재까지 더한 값: 1864
정수를 입력해주세요.(종료를 원하시면 0): 0
현재까지 더한 값: 1864
최종합: 1864
for문에 의한 문장의 반복
for문의 구조와 이해
- 필수요소 1 = 초기식 - 반복을 위한 변수의 선언 및 초기화에 사용
- 필수요소 2 = 조건식 - 반복의 조건을 검사하는 목적으로 선언됨
- 필수요소 3 = 증감식 - 반복의 조건을 ‘거짓'으로 만드는 증가 및 감소 연산
for( 초기식 ; 조건식 ; 증감식 )
{
// 반복의 대상이 되는 문장들
}
- 반복의 횟수가 딱 정해진 경우엔 for문이 최선