본문 바로가기
정보처리이론

1-3. 제어문과 반복문

by 공부합시다홍아 2020. 10. 17.

1. 제어문 
컴퓨터 프로그램은 명령어가 서술된 순서에 따라 무조건 위에서 아래로 실행되는데, 조건을 지정해서 진행 순서를 변경 가능하다.
이렇게 프로그램의 순서를 변경할 때 사용하는 명령문을 제어문이라고 한다.
- 제어문 종류 : if문, 다중if문, switch문, goto, 반복문 등이 있다.

단순 if문
if문은 조건에 따라서 실행할 문장을 달리하는 제어문이며, 단순 if문은 조건이 한 개 일 때 사용하는 제어문이다.
- 조건이 참일 때만 실행할 문장을 지정할 수도 있고, 참과 거짓에 대해 각각 다른 실행문을 지정할 수도 있다.

if(조건)
	실행할 문장1;
        실행할 문장2;
else
	실행할 문장3;
#includd<stido.h>
main()
{
    int a=10, b=20, plus, minus;
    if(a>b)
    	plus = a+b;
    else
    	minus = b-a;
    printf("%d\n", minus);
}
#include<stdio.h>
main()
{
    int jum=85;
    if(jum>=90)
    	printf("학점은 A입니다\n");
    else if(jum>=80)
    	printf("학점은 B입니다\n");
    else if(jum>=70)
    	printf("학점은 C입니다\n");
    else 
    	printf("학점은 F입니다\n");
}

 

switch문
조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문

switch(수식)
{
    case 레이블1:
    실행할 문자1;
    break;
    
    case 레이블2:
    실행할 문장2;
    
    default:
    실행할 문장3;
}

- case문의 레이블에는 한 개의 상수만 지정할 수 있으며 int, char, enum형의 상수만 가능
- case문의 레이블에는 변수 지정 x
- break문은 생략이 가능하지만 break문이 생략되면 수식과 레이블이 일치할 때 실행할 문장부터 break문 또는 switch문이 종료될 때 까지 모든 문장이 실행된다.

#include<stdio.h>
main()
{
    int jum = 85;
    switch(jum/10)
    
    {
    	case10:
        
        case9:
            printf("학점은A입니다\n");
            break;
        case8:
            printf("학점은B입니다\n");
            break;
        case7:
            printf("학점은C입니다\n");
            break;
        case6:
            printf("학점은D입니다\n");
            break;
        default:
        
        printf("학점은F입니다.\n")
     }
}

 

goto문
프로그램 실행 중 현재 위치에서 원하는 다른 문장으로 건너뛰어 수행을 계속하기 위해 사용하는 제어문
※ goto문은 원하는 문장으로 쉽게 이동할 수 있지만 많이 사용하면 프로그램의 이해와 유지보수가 어려워져 거의 사용     하지 않는다.

goto 레이블;   //레이블로 이동한다.

레이블:			//goto문의 주소값이다. '레이블' 형태로 작성되며, 레이블명은 사용자가 원하는 이름을
                          임의로 지정할 수 있다.
	실행할 문장
#include<stdio.h>
main()
{
    int a;
again:					//again이라는 레이블의 goto주소이다.
	scanf("%d", &a);	//정수형 변수a에 10진수를 입력받는다.
    if(a<=10)			
    	goto again;		//4~6졸 사이에 있는 again레이블로 이동
    else
    	printf("%d는 10보다 큽니다.", a);
}

 

2. 반복문
제어문의 한 종류로 일정한 횟수를 반복하는 명령문을 말한다. 
보통 변수의 값을 일정하게 증가시키면서 정해진 수가 될 떄까지 명령이나 명령 그룹을 반복 수행
- for, while, do~while문이 있다.

for문
초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문
- 초깃값을 정한 다음 최종값에 대한 조건이 참이면 실행할 문장을 실행한 후 초기값을 증가값 만큼 증가시키면서
  최종값에 대한 조건이 참인 동안 실행할 문장을 반복 수행한다.

for(식1; 식2; 식3) 
// for는 반복문을 의미하는 예약어
// 식1 : 초기값, 식2 : 최종값, 식3: 증가값
int a, sum = 0;
for(a=1; a<=5; a++)
	sum += a;

 

while 문
조건이 참인 동안 실행할 문장을 본복 수행하는 제어문이다.
- while문은 조건이 참인동안 실행할 문장을 반복 수행하다가 조건이 거짓이면
  while문을 끝낸 후 다음코드를 실행
- 조건이 처음부터 거짓이면 한 번도 수행하지 않는다.

while(조건)
	실행할 문장;
#include<stdio.h>
main()
{
    int a=0, sum=0;
    while(a<5)
    {
        a++;
        sum += a;
    }
    printf("%d, %d\n", a,sum);
}

 

do~while문
조건이 참인 동안 정해진 문장을 반복 수행하다가 조건이 거짓이면
반복문을 벗어나는 while문과 같은 동작
다른 점은 do~while문은 실행할 문장을 무조건 한 번 실행한 다음 조건을 판단하여 탈출 여부를 결정

- do~while문은 실행할 문장을 우선 실행한 후 조건을 판별하여 조건이 참이면 실행할 문장을 계속 반복 수행
  거짓이면 do~while문을 끝낸 후 다음 코드를 실행

do
	실행할 문장;
while(조건);
#include<stido.h>
main()
{
    int a=1, sum=0;
    do
    {
        sum += a;
        a+=2;
     }
     while(a<10);
     printf(%d,%d\n", a,sum);
}

 

break, continue

switch문이나 반복문의 실행을 제어하기 위해 사용되는 예약어이다.

◎ break : switch문이나 반복문 안에서 break가 나오면 블록을 벗어난다.
◎ continue : continue 이후의 문장을 실행하지 않고 제어를 반복문의 처음으로 옮긴다.
 반복문에서만 사용된다.

// 1~5까지의 합을 더하되 2의 배수는 배제하는 프로그램

#include<stdio.h>
main()
{
    int a=0, sum=0;
    while(1)
    {
        a++;
        if(a>5)
            break;
        if(a%2==0)
            continue;
            
        sum += a;
     }
     printf("%d, %d\n", a, sum);
}
728x90

'정보처리이론' 카테고리의 다른 글

1-6. Python 의 기초와 라이브러리  (0) 2020.10.17
1-5. 포인터와 사용자정의함수  (0) 2020.10.17
1-4. 배열과 문자열  (0) 2020.10.17
1-2. 데이터입출력과 연산자  (0) 2020.10.17
1-1. 데이터타입과 변수  (0) 2020.10.17