제어문에는 조건문과 반복문이 있습니다. 반복문은 일정한 작업을 반복하여 수행하는 문법을 말하며 반복의 시작을 위한 초기식, 종결을 결정하는 조건식, 반복의 조건을 변화시키기 위한 증감식으로 이루어져 있습니다. 반복문의 종류에는 for문, while문, do~while문이 있습니다. 이번 장에서는 반복문 중에서도 가장 많이 사용되는 for문에 대해 살펴보도록 하겠습니다.
for문의 구조
for(초기식;조건식;증감식)
{
반복할 명령문;
}
반복문은 아래의 세 가지의 요소와 반복할 명령문의 { } 블록으로 이루어지며, 각각의 요소들은 세미콜론(;)으로 구분됩니다.
- 초기식 - 시작 조건으로 반복문이 시작될 때 한 번만 실행됩니다.
- 조건식 - 종결 조건으로 조건식이 참(1)이면 { }안의 블록을 실행하고, 거짓이면 블록을 벗어납니다.
- 증감식 - 블록 다음으로 실행되며, 시작 조건에서 종결 조건으로 변화하기 위한 증감식입니다.
다음은 1부터 10까지의 정수를 출력하는 프로그램입니다.
#include <stdio.h>
int main()
{
int i;
for(i=1;i<=10;i++)
{
printf("%d\n", i);
}
return 0;
}
- 초기식 - 조건식 - { }블록 - 증감식 - 조건식 - { }블록 - 증감식 - 조건식 - { }블록 - ....... 의 순서로 조건식이 참이면 { }블록 안의 명령문이 계속 실행됩니다.
- 초기식 i=1은 for문이 시작될 때 처음 한 번만 실행됩니다.
- 초기식이 실행된 다음 조건식 i<=10의 조건을 판별하여 참이면 중괄호{ } 블록 안의 내용을 실행합니다.
- 조건식이 참이므로 printf문에 의해 변수 i의 값(1)을 출력합니다.
- 그 뒤 증감식 i++이 실행되며 다시 조건식 i<=10을 판별합니다.
- 조건식이 참이므로 printf문에 의해 변수 i의 값(2)이 출력됩니다.
- 이 패턴은 계속 반복되며 i=11이되면 조건식 i<=10이 거짓이 되므로 중괄호{ }블록을 실행하지 않고 반복문을 빠져나옵니다.
- 위 프로그램의 출력 결과는 다음과 같습니다.
출력 결과
for문의 예제
(1단계) 예제 : 1부터 10까지 짝수를 구하는 프로그램을 작성하시오.
#include <stdio.h>
int main()
{
int i;
for(i=2;i<=10;i+=2) //i+=2 => i=i+2
{
printf("%d\t", i);
}
return 0;
}
출력 결과
(2단계) 예제1 : 1부터 10까지의 합을 구하는 프로그램을 작성하시오.
#include <stdio.h>
int main()
{
int i, sum=0;
for(i=1;i<=10;i++)
{
sum+=i; //sum=sum+i;
}
printf("1부터 10까지의 합은 %d입니다.", sum);
return 0;
}
출력 결과
(2단계) 예제2 : 구구단 2단을 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main()
{
int i;
printf("====2단====\n");
for(i=1;i<=9;i++)
{
printf("2 * %d = %d\n", i, 2*i);
}
return 0;
}
출력 결과
(2단계) 예제3 : 알파벳 'A'부터 'Z'까지를 출력하시오.
#include <stdio.h>
int main()
{
char ch;
for(ch='A';ch<='Z';ch++) //대문자 출력
{
printf("%c ", ch);
}
return 0;
}
출력 결과
#include <stdio.h>
int main()
{
char ch;
for(ch='a';ch<='z';ch++) //소문자 출력
{
printf("%c ", ch);
}
return 0;
}
출력 결과
아스키 코드 값을 이용하여 알파벳을 출력한다면 각각의 아스키 코드값을 알아야합니다. 인터넷 검색을 통해 알아볼 수 있으며 아스키 코드 값 출력을 통해 알아볼 수도 있습니다.
#include <stdio.h>
int main()
{
printf("%d\n", 'A'); //A의 아스키코드값 출력
printf("%d\n", 'Z'); //Z의 아스키코드값 출력
return 0;
}
출력결과
대문자 'A'의 아스키 코드 값은 65, 'Z'의 값은 90입니다. 따라서 65부터 90까지를 문자(변환문자 %c)로 출력한다면 다음과 같이 알파벳 'A'에서 'Z'까지를 출력할 수 있습니다.
#include <stdio.h>
int main()
{
char ch;
for(ch=65;ch<=90;ch++) //대문자 출력(아스키코드 65~90)
{
printf("%c ", ch);
}
return 0;
}
출력 결과
'C 언어 프로그래밍 > 흐름제어 - 반복문' 카테고리의 다른 글
while()문 (0) | 2020.06.16 |
---|---|
중첩 for문 (1) | 2020.06.03 |
댓글