본문 바로가기
프로그래밍 언어/C

C언어 - 5. 제어문과 반복문

by nomfang 2021. 3. 10.
728x90
반응형

프로그램 언어의 제어 구조

  • 순차적 제어
    -> 특별한 지정이 없는 경우 위아서 아래로 수행됨

  • 선택적 제어
    -> 주어진 조건에 따라 특정부분으로 수행을 옮기는 분기 제어구조

  • 반복적 제어
    -> 특정한 부분을 일정 횟수만큼 반복 수행하는 제어구조

4-1. 선택 제어문

  • if 문
  • switch ~ cas e문
  • go to 문

1.단순 if문 (단순 제어)

  • 형식 : if (조건) { 참일 경우 명령문 } 거짓일 경우 명령문
    -> 가독성이 떨어진다-> 가독성이 떨어진다

2.if ~ else 문

  • 형식 : if (조건) 참일 경우 명령문 else 거짓일 경우 명령문
#include <stdio.h>


int main(void) {

  int a, b, max;

  a = 10;
  b = 20;

  if(a >= b)
    max = a;  // 수행될 명령문이 2줄 이상일 경우 중괄호로 묶어준다

  else
    max = b;

  printf("max=%d", max);
}

3.다중 if ~ else 문

  • 형식 :
    if (조건 1)
    조건 1 참 명령문;

    if (조건 2)

    조건 2 참 명령문;
else
    조건 2 거짓 명령문;

else
조건 1 거짓 명령문;

#include <stdio.h>


int main(void) {

  int a;
  a = 10;

  if(a >= 0)
    if(a==0)
      printf("입력 값은 0 입니다.");
    else
      printf("입력 값은 양수입니다.");
  else
    printf("입력 값은 음수 입니다.");
}

4. if ~ else if ~ else 문

  • 형식 :
    if(조건 1)
    명령문1;
    else if (조건 2)
    명령문2; 
    else if (조건 3)
    명령문3;
    else
    명령문4;
#include <stdio.h>


int main(void) {

  int score = 10;

  if(score>=8)
    printf("학점 A");
  else if(score>=6)
    printf("학점 B");
  else
    printf("학점 C");
}

switch ~ case 문 (다양한 경우의 제어 가능)

  • 형식 :
    switch(수식){
    case 값1: 명령문 1;
    break;
    case 값2: 명령문 2;
    break;
    default: 명령문(else와 비슷한)

-> 주어진 값에 따라 여러 곳 중 한 곳으로 분기하여 실행
-> 하나의 case마다 break를 사용하여 멈춰주어야 원하는 결과를 얻을 수 있다 (없으면 case 전체 실행됨)

goto 문 (무조건 분기)

  • 형식 :

Label:

goto Label;

-> 프로그램 수행 도중 원하는 곳으로 제어를 무조건 옮김

#include <stdio.h>


int main(void) {

  int score = 5;


  if(score>=8)
    printf("학점 A");
  else if(score>=6)
    printf("학점 B");
  else
    goto Hell;
    printf("학점 C");
  Hell:
  printf("welcome to Hell");
}

  • if ~ elif ~ else 내에 goto 적용 시 else에만 가능
  • 루프안(if, for 등)으로 들어갈 수 없다 -> 안에서 밖으로는 가능

4-2. 반복 제어문

반복 제어문의 종류

for

  • while
  • do ~ while

for 문

  • 형식 :
    for(초기식; 조건식; 증감식) {
    실행문;
    }
  • 주어진 조건에 만족하는 만큼 반복 실행된다

  • 조건에 들어갈 식은 정수형이어야 한다

다중 for 문

  • 형식 :
    for() {
    for(){
    내부 실행문;
    }
    외부 실행문;
    }

while 문

  • 형식 :
    while(조건식){
    실행문;
    }
  • for문과 같은 반복문이지만 조건식에 의해 실행됨

do while 문

  • 형식 :
    do {
    실행문;
    }while(조건식);

-> do 내부의 실행문을 먼저 1회 실행 후 참이면 조건 만큼 실행, 아니면 종료

기타 제어문

  • break -> 반복 명령 실행 중 전체 반복문 강제 종료 (switch~case 문에서도 사용)
  • continue -> 자신이 포함된 반복문만 빠져나오고 계속 실행 (반복 구조에서만 사용)
반응형

댓글