반복문의 종류:
기본 형식
while( 반복 조건 ){
loop body;
};
do{
loop body;
}; while(반복 조건)
for(초기화,반복조건,증감){
loop body;
};
do while문
do{
printf("양의 정수 또는 0(종료)을 입력: ");
scanf("%d", &input);
...
} while (input!=0);
do while 문의 종료를 나타내는 세미콜론은 반드시 있어야 한다.
언제 사용하는가?
0을 입력하면 종료되는 예제:
int main()
{
int num;
do{
printf("정수 또는 0을 입력하시오: ");
scanf("%d", &num);
}while(num!=0);
printf("종료합니다");
return 0;
}
1~5까지 출력하는 예제:
int main()
{
int n = 1; //제어변수 n을 사용
do{
printf("%d\n", n);
n++;
}while(n!=6);
return 0;
}
정수의 각 자릿수 출력 예제:
int main(){
int num;
printf("양의 정수[100~900] 입력: ");
scanf("%d", &num);
do{
printf("100단위 출력: %d", num/100);
num = num%100;
printf("10단위 출력: %d", num/10);
num = num%10;
printf("1단위 출력: %d", num);
}while(num!=0);
}
for문
기본 형식
for (init;cond;inc)
stmt;
next;
//
for(int i=1;i<=10;i++)
printf("%3d: " i);
섭씨→화씨 예제:
//변환 공식 (0°C × 9/5) + 32 = 32°F
int main()
{
int celsius;
printf("섭씨(C) 화씨(F)\n");
printf("----------------\n");
for(int i=0;i<3;i++){
printf(" "); scanf("%d", &celsius); printf(" %d\n", (celsius*9/5)+32);
}
return 0;
}
for와 while간의 변환
pre
for(A;B;C){
body
}
pre
A
while(B){
body
C
}
//변환 예시
sum=0;
for(int i=1;i<=MAX;i++){
sum+=i;
}
sum=0;
i=1;
while(i<=MAX){
sum+=i;
i++;
}
누적합 예시:
int main(){
int num;
int sum=0;
printf("1에서부터 정수까지의 합을 구할 양의 정수 하나 입력: ");
scanf("%d", &num);
for(int i=0;i<=num;i++){ //num까지 계산해야 하니 <= 로 해야함.
sum+=i;
}
sum=0; //sum을 초기화해줘야한다.
int i=0;
while(i<=num){
sum+=i;
i++;
}
printf("for문: ", sum);
printf("while문: ", sum);
return 0;
}