반응형
SMALL

학습목표

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.1 선택 제어문

 명령어는 컴퓨터에 의해 하나씩 순서대로 처리되는데, 경우에 따라서는 명령을 건너뛰기도 해야 하고, 또 어떠한 명령어들은 여러 번 반복하여 수행해야 하는 경우도 있따. 이와 같이 순차적으로 실행 되는 프로그램의 순서를 제어하는 명령문을 제어문이라고 한다.

 

 

4.1.1 if문

 

(1) 단순 if문

형식 1) 주어진 조건을 만족하면(참이면) 명령문 1부터 수행하고, 만족하지 않으면 명령문 2 를 수행

 

형식 2) 주어진 조건을 만족하면 중관호{ } 안의 명령문을 수행하고 만족하지 않으면 중괄호 밖의 명령문을 수행

 

이때, 조건에 따라 수행해야 할 명령문이 복수개일 경우는 반드시 중괄호 { } 로 묶어야 한다.

 

 

 

//if문의 사용 1

#include <stdio.h>
void main(){
   int a;

   printf("정수입력(1~200) : "); 
   scanf("%d",  &a) ; //정수를 입력받아 변수 a에 저장      
   if( a < 100)  
// 변수 a의 값이 100보다 크면 printf문 실행 안 함  
      printf("입력한 정수가 100보다 작음. \n") ; 
      printf("a = %d ", a);

>>> 50 입력하면 입력한 정수가 100보다 작은

// 120 입력하면 그대로 출력

 

 

//if문의 사용 2

#include <stdio.h>
void main(){
   int a = 10, b = 10;

   printf("if문 실행 전 : a = %d, b = %d \n", a, b);

   if( a > b ){ 
//조건을 만족하지 않으므로 중괄호 밖의 명령문을 수행함  
      a = a + 20; 
      printf("a = %d \n", a); } 
       b = b + 20; 

   printf("if문 실행 후 : a = %d, b = %d \n", a, b); }

 

 

 

(2)if ~ else 문

if ~ else 문은 조건의 참과 거짓에 따라 실행 되는 명령문을 다르게 지정할 수 있게 한다.

 

- 형식 : if(조건)

              명령문 1;

           else

              명령문 2;

- 기능 : 주어진 조건이 참일 때는 명령문 1을, 거짓일 때는 명령문 2를 수행한다.

 

 

//사용 예1

#include <stdio.h>
void main(){
   int a; 
   printf("정수 입력(1~200) :");
   scanf("%d", &a); // 정수를 입력받아 변수 a에 저장

   if (a < 100 )  
//변수 a의 값이 100보다 작으면 아래 printf문 실행  
      printf("입력한 정수(%d)가 100보다 작음. \n", a) ; 
   else  
// 변수 a의 값이 100보다 크면 아래 printf문 실행 
      printf("입력한 정수(%d)가 100보다 큼. \n", a) ; 
      printf (" 프로그램 종료 \n");   }

>>> 위 사진은 75 입력, 아래 120 입력

 

 

//사용 예2

#include <stdio.h> 
void main() {
   int a;
   printf("정수를 입력하세요 :");
   scanf("%d", &a); // 정수를 입력받아 변수 a에 저장

   if( a % 2 == 0) { 
// % 연산 결과가 0이면 참(짝수), 1이면 거짓(홀수) 
      printf("입력한 정수는 %d입니다. \n", a) ; 
      printf("%d는(은) 짝수입니다. \n", a); } 
   else { 
      printf("입력한 정수는 %d 입니다. \n", a); 
      printf("%d는(은) 홀수입니다.", a); }  }

>>> 7입력 시 홀수 출력, 8 입력 시 짝수 출력

 

 

 

(3) 다중 if ~ else 문

다중 if ~ else 문은 다양한 조건을 만들 수 있다. 

 

다중 if ~ else 문은 if문의 범위에 혼동이 일어나기 쉬우므로 중괄호{ }를 사용하여 범위를 확실히 하는 것이 좋으며,

중괄호를 사용하지 않을

경우 if ~ else 문이 중첩되어 다중으로 사용되면 else는 가장 가까운 if문과 대응되어 하나의 if ~ else 문을 형성한다

 

 

 

 

- 형식 : if (조건1 )

                 if (조건2 )

                       명령문 1;            // 조건1과 조건 2가 참일 때는 명령문 1을,

                 else

                       명령문 2;            // 조건 1이 참이고 조건 2가 거짓일 때는 명령문 2

            else 

                       명령문 3             // 조건 1이 거짓일 때는 명령문 3을 수행한다.

//사용 예 1

#include <stdio.h>

 void main(){ 
     int a; 
     printf("정수를 입력하세요 : "); 
     scanf("%d", &a);   //정수를 입력 받아 변수 a에 저장 
     if( a >= 0)  
          if(a==0)  // 첫 번째와 두 번째 조건을 모두 만족할 경우 출력  
              printf("입력된 값은 0"); 
           else 

 /* 첫번째 조건을 만족하고,  두 번째 조건을 만족하지 않을 경우 출력 */ 
              printf("입력된 값은 양수"); 
     else  // 첫번째 조건을 만족 하지 않을 경우 출력 
             printf("입력된 값은 음수");  }

 

 

 

(4) 다중 if~else if~else 문

- 형식 : if (조건1)         // 조건1이 참이면 명령문 1을 수행하고,

             명령문1;

           else if (조건2)  // 거짓이면 조건2를 검사하여 참이면 명령문 2를 수행하고,

             명령문2;

           else if(조건3)   // 거짓이면 조건3을 검사하여 참이면 명령문 3을 수행하고,

             명령문3;

           else               // 거짓이면 명령문4를 수행한다.

             명령문4;

 

 

#include <stdio.h> 
void main(){
   int score = 0;
   printf("성적 입력 :") ;
   scanf("%d", &score) ;                   //변수 score에 성적 입력
   if (score >= 90)
      printf("학점은 A \n") ;              // 학점 90점 이상이면 'A' 출력
   else if (score >= 80)             
      printf("학점은 B \n") ;              // 학점 80점 이상이면 'B' 출력
   else if (score >= 70)
      printf("학점은 C \n") ;              // 학점 70점 이상이면 'C' 출력
   else if (score >= 60)
      printf("학점은 D \n") ;              // 학점 60점 이상이면 'D' 출력
   else 
      printf("학점은 F \n") ; }              // 학점 59점 이하이면 'F' 출력

 

반응형
LIST

+ Recent posts