학습목표
1. 프로그램의 제어 구조를 이해하고 필요성에 대해 생각해 본다.
2. 선택문 제어문(if문, switch문, goto문)의 사용 방법을 이해하고 적용할 수 있다.
3. 반복 제어문(for문, while문, do~while문)의 사용 방법을 이해하고 적용할 수 있다.
4. break문과 continue문의 사용 방법과 차이점을 이해할 수 있다.
주요용어
제어구조, if문, if~else문, switch문, goto문, for문, while문, do~while문, break문, continue문
4.2 반복 제어문
지정된 문장들을 조건이 만족될 때까지 반복 수행하는 제어문으로 for문, while문, do ~ while문이 있다.
for 문은 반복 횟수가 정해진 경우에 사용되며, while문과 do ~ while 문은 반복 횟수를 명확히 예측할 수 없는 경우에 사용된다.
4.2.1 for 문
- 형식 : for(초기식; 조건식; 증감식 ) { 반복 실행될 문장; }
- 기능 : 주어진 조건이 만족되는 동안 루프문을 반복 수행한다.
//for문의 사용 예1
#include <stdio.h>
void main(){
int i, sum = 0; // 루프 변수 i 는 정수형이어야 함
for (i=1; i <=10; ++i) {
/*i값이 11이 되면 조건식이 거짓이 되어 루프를 빠져나옴 */
sum = sum + i;
printf("%d번째 실행 : sum = %d \n", i, sum); }
printf("1부터 %d까지의 합 = %d \n", i-1, sum); }
// 다중 for문의 사용 예(구구단)
#include <stdio.h>
void main(){
int i, j;
printf("\n");
for(i = 2; i <= 9; i ++)
printf(" - %d단 -", i);
printf("\n");
for( i = 1; i <= 9; i++){
//외부 for문, 행을 만듦
for( j =2; j <= 9; j++) {
//내부 for문, 열을 만듦
printf(" %dx%d=%2d ", j, i, j *i); }
printf("\n"); } }
4.2.2 while문
- 형식: while(조건식) {
반복 실행될 문장; }
- 기능 : 주어진 조건이 만족되는 동안 루프문을 반복 수행한다..
//while문의 사용 예
#include <stdio.h>
void main(){
int i = 1, sum = 0;
//while문 초기식(i=1)
while(i <= 10) {
//i값이 11이 되면 조건식이 거짓이 되어 루프를 빠져나옴
sum = sum + i;
printf("%d번째 실행 : sum = %d \n", i,sum) ;
i++; // while문 증감식 (i++) }
printf("1부터 %d 까지의 합 = %d \n", i-1, sum); }
// 다중 while문의 사용 예
#include <stdio.h>
void main(){
int i, j;
i = 2; //while문 초기식(i=2)
while(i <= 9) { //while문 조건식(i<=9)
printf(" - %d단-", i );
i++; //증감식(i++)
}
printf("\n");
i = 1; //외부 while문 초기식(i = 1)
while(i <= 9) { //외부 while문, 행을 만듦
j = 2; //내부 while문 초기식(j = 2_)
while ( j <= 9){//내부 while문, 열을 만듦
printf(" %dx%d=%2d", j, i, j * i) ;
j++; // 내부 while문 증감식(j++) }
printf("\n");
i++; // 외부 while문 증감식(i++) } }
4.2.3 do ~ while문
do ~ while 문은 반복문 내의 명령문을 먼저 실행한 후, 조건을 검사하여 반복 실행 여부를 결정한다. 그래서 do~while문은 while문에 비해 명령문을 적어도 한번은 실행하게 된다. do ~while문의 조건식 뒤에는 세미콜론(;)이 들어가게 된다
- 형식 : do {
반복 실행될 문장 ;
} while(조건식);
-기능 : 반복문 내에 명령문을 실행한 후 , 주어진 조건을 검사하여 반복 수행 여부를 결정한다.
//사용 예
#include <stdio.h>
void main(){
int i = 0, n;
int sum = 0;
printf("n=? ");
scanf("%d", &n);
do { //do ~ while 루프
sum = sum + i;
i++; } while( i <= n) ;
// 세미콜록 (; ) 을 쓰지 않으면 에러 발생
printf("i = %d \n", i);
printf("i ~ %d까지 합 = %d \n", n, sum); }
4.3 기타 제어문
4.3.1 break문
break문은 반복 명령의 실행 도중에 강제적으로 반복문을 빠져나오는 데 사용된다.
즉, for루프, while 루프, do~while루프, switch 블록 등을 강제로 종료시키고자 할 때 사용된다.
break문이 실행되면 자신이 포함된 반복문만 빠져나오게 된다.
//break문의 사용예
#include <stdio.h>
void main(){
int num, sum = 0;
while(1) { // 무한 while 루프
printf("num(끝 : 0)...?") ;
scanf("%d", &num) ;
if(num == 0)
//num의 값이 0이면 while 루프 종료
break;
//루프 바깥으로 바져나감
sum = sum + num; }
printf(" sum = %d", sum); }
4.2.3 continue문
for, while, do ~while 루프 실행 중 루프를 다시 실행하고자할 때 사용된다. break문과는 달리 루프를 빠져나오는 것이 아니라 그 루프의 선두로 다시 제어를 옮겨 다음 반복을 실행하도록 한다.
//사용예
#include <stdio.h>
#include <math.h>
void main(){
int num = 1;
while(num != 0){
//num이 0이 아닌 한 계속 반복되는 while 루프
printf("num = ?(0: 종료) :") ;
scanf("%d", &num);
if(num<0){
//음수면 continue 수행, 루프의 선두로 복귀
printf("num : Negative number ! \n\n") ;
continue; }
printf("Squareroot of %d = %f \n\n", num, sqrt(num)); }
printf("The end \n"); }
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
표준함수 function (0) | 2020.05.29 |
---|---|
for문, while문, do~while문 차이점 (0) | 2020.05.28 |
제5강 switch문, goto문 예시 (0) | 2020.05.26 |
제5강 if문, if~else문 (0) | 2020.05.25 |
제4강 대입, 비트, 기타, 연산자 , 연산자우선순위 (0) | 2020.05.24 |