• 프로그래밍 언어 활용 part 1 - 조건문

    2021. 7. 25.

    by. 고구마달랭이

    조건문

    [학습내용] [학습목표]
     if
     switch case
     if 구문의 기본 문법을 알고 조건식을 구현할 수 있다.
     switch case 구문의 기본 문법을 알고 조건식을 구현할 수 있다.
     표준 입력함수를 알고 사용할 수 있다.

     

    if문

     

    1. if

    기본 문법

    ▪ 조건을 판단하여 참인 경우 문장 수행

    형식 if(조건식)
    문장 ;
    예제 if( score < 60 )
    printf(“불합격입니다.n”);

     

     

    예제

    ▪ 변수 a가 양수이면 “Positive”를 출력하시오.

    int a=5;
    
    if (a>0)
      printf(“Positive”);

     

     

    ▪ 변수 a가 양수이면 a1을 할당하고 “Positive”를 출력하시오.

    int a=5;
    
    if (a>0)
    {
      a=1;
      printf(“Positive”);
    }  // 조건에 따른 수행 문장이 두 문장 이상인 경우는 { }로 시작과 끝을 알림

     


    2. if ~ else

    기본 문법

    형식 if (조건식)
    문장1 ;
    else
    문장2 ;

    예제 if ( score < 60 )
    printf(“불합격입니다.n”);
    else
    printf(“합격입니다.n”);

     

     

    예제

    ▪ 변수 a가 양수이면 “Positive”를 출력하고 음수이면 “Negative”를 출력하시오.

    int a=5;
    
    if (a>0)
      printf(“Positive”);
    else
      printf(“Negative”);

     

     

    ▪ 변수 a가 홀수이면 “Odd”를 출력하고 짝수이면 “Even”를 출력하시오.

    int a=5;
    
    if (a%2)
      printf(“Odd”);
    else
      printf(“Even”);

     


    3. if ~ else if ~ else

    기본 문법

    형식 if (조건식 1)
    문장1 ;
    else if (조건식 2)
    문장2 ;
    else if (조건식 3)
    문장3 ;
    ∙∙∙∙∙∙∙
    else
    문장n ;
    예제 if ( age < 19 )
    printf(“청소년 요금입니다.n”);
    else if ( age >=65 )
    printf(“경로 우대 요금입니다.n”);
    else
    printf(“성인 요금입니다.n”);

     

     

    예제

    ▪ 변수 a가 양수이면 “Positive”를 출력하고 음수이면 “Negative”, 0이면 “Zero”를 출력하시오.

    int a=5;
    
    if (a>0)
      printf(“Positive”);
    else if (a<0)
      printf(“Negative”);
    else
      printf(“Zero”);

     


     

    4. 중첩 if문

    ▪ 변수 a가 양수인 경우 100 이상이면 “Great”, 100 미만이면 “Good”, 음수이면 “Negative”, 0이면 “Zero”를 출력하시오.

    int a=5;
    if (a>0)
    {
      if(a>=100)
     	 printf(“Great”);
      else
     	 printf(“Good”);
    }
      else if (a<0)
       	 printf(“Negative”);
      else
       	 printf(“Zero”);

     

    switch case문

     

    1. switch문

    기본 문법

    switch( 값 )
    {
      case 값1 : 문장1-1; 문장1-2; break;
      case 값2 : 문장2-1; 문장2-2; break;
      case 값3 : 문장3-1; 문장3-2; break;
      . . .
      default : 문장d1; 문장d2;
    }

     

     

    예제 1

    int a=2;
    
    switch( a )
    {
    	case 1 : printf(“one”); break;
    	case 2 : printf(“two”); break;
    	case 3 : printf(“three”); break;
    	default : printf(“other”);
    }
    
    char a=‘K’;
    
    switch( a )
    {
    	case ‘A’ : printf(“Ahn”); break;
    	case ‘L’ : printf(“Lee”); break;
    	case ‘K’ : printf(“Kim”); break;
    	default : printf(“other”);
    }

     

     

    예제 2

    int a=2;
    
    switch( a )
    {
      case 1 : printf(“one”);
      case 2 : printf(“two”);
      case 3 : printf(“three”);
      default : printf(“other”);
    }

     

     

    예제 3

    int a=2;
    
    switch( a%3 )
    {
      case 0 : printf(“zero”); break;
      case 1 : printf(“one”); break;
      case 2 : printf(“two”); break;
    }
    
    char a=85;
    
    switch( a )
    {
      case a>80 : printf(“one”); break;
      case a<30 : printf(“two”); break;
      default : printf(“other”);
    }

     

     

    ifswitch 비교

    char grade;
    scanf(“%c”, &grade);
    if ( grade == ‘A’)
    printf(“Excellent”);
    else if ( grade == ‘B’)
    printf(“Good”);
    else if ( grade == ‘C’)
    printf(“Normal”);
    else if ( grade == ‘D’)
    printf(“Bad”);
    else
    printf(“Fail”);

    char grade;
    scanf(“%c”, &grade);
    switch(grade)
    {
    case ‘A’ : printf(“Excellent”); break;
    case ‘B’ : printf(“Good”); break;
    case ‘C’ : printf(“Normal”); break;
    case ‘D’ : printf(“Bad”); break;
    default : printf(“Fail”); break;
    }



     


     

    2. 입력문

    scanf() 소개

    ▪ scanf()를 이용한 입력

    ▪ 표준입력으로부터 다양한 자료를 지정한 변수에 저장

    ▪ 형식지정자(%d %c %f %lf) 사용

    ▪ 공백, enter 전 까지를입력

    ▪ 형식 : scanf(“형식지정자”, &변수명)

     

     

    정수 입력

    ▪ 형식지정자 : %d

    int a, b;
    
    scanf(“%d”, &a);
    printf(“%d”, a);
    
    scanf(“%d”, &b);
    printf(“%d” ,b);
    
    scanf(“%d %d”,&a, &b);
    printf(“%d %d”, a, b);

     

     

    실수 입력

    ▪ 형식지정자 : %f(float) %lf(double)

    float a; double b;
    
    scanf(“%f”, &a);
    printf(“%f”, a);
    
    scanf(“%lf”, &b);
    printf(“%f” ,b);
    
    scanf(“%f %lf”,&a, &b);
    printf(“%f %f”, a, b);

     

     

    문자 입력

    형식지정자 : %c

    단일문자

    char a,vb;
    
    scanf(“%c %c”, &a, &b);
    printf(“%c %c”, a, b);
    
    scanf(“%c”, &a);
    printf(“%c”, a);
    
    scanf(“%c”, &b);
    printf(“%c” ,b);

     

     


     

     

    평가하기

     

    Q1. if 구문과 관련하여 옳지 않은 설명은 무엇인가?


    ① if문 내에 if문을 포함시킬 수 있다.
    ② 조건에 따라 수행할 문장이 2문장 이하이면 { }는 생략 가능하다. 
    ③ if ~ else if를 사용할 때 반드시 else문을 사용하지 않아도 된다.
    ④ if문에서 조건에 따라 수행할 문장은 여러 문장을 기술할 수 있다.

     

    한 문장인 경우만 { }가 생략 가능합니다.




    Q2. switch ~ case 구문에서 분기 값이 해당하는 case가 없을 경우, 수행할 문장을 기술할 때 사용할 문장은 무엇인가?


    break
    default 
    true
    all

     

    해당하는 case가 없는 경우에는 default에 기술한 문장을 수행합니다.

     



    Q3. scanf()를 이용하여 표준 입력에서 double형 데이터를 입력하고자 할 때 형식문자로 옳은 것은 무엇인가?


    %c
    %d
    ③ %f
    ④ %lf 

    연산 결과 정수로 몫과 나머지가 출력됩니다.

     

     

     


     

     

    학습정리

     

    1. if문

    • 조건에 따라 분기되는 if문은 크게 3가지 형태로 구분됨

    • if문 내에 중첩해서 if문을 기술하는 것이 가능함

    • 조건에 따라 수행하는 문장이 한 문장이면 { }는 생략 가능함

     

    2. switch case문

    • switch문에서 분기 조건으로 상수, 정수, 수식이 사용될 수 있음

    • 조건에 일치하는 case가 없는 경우 수행할 문장은 default에 기술함

    • 표준입력 함수로 scanf()를 사용하고 입력을 위해 형식지정자를 사용함

    • 입력 버퍼를 비우는 함수로 fflush(stdin);함수가 있음

     

     

     

     

     

    댓글