제어문의 개념 선택문 반복문 분기문

30
3 3 ㅎㅎ • 제제제제 제제 • 제제제 • 제제제 • 제제제 ㅎㅎㅎ 제제제 제 제 제 C++ C++ ㅎㅎㅎㅎㅎ ㅎㅎ ㅎㅎㅎㅎㅎ ㅎㅎ : ㅎㅎㅎㅎㅎ ㅎㅎ

Upload: amadis

Post on 16-Jan-2016

70 views

Category:

Documents


0 download

DESCRIPTION

ㅎㅎ. C++ 프로그래밍 기초 : 객체지향의 시작. 제어문. 제어문의 개념 선택문 반복문 분기문. 2 장 . 자료형과 연산자. 학습목표 조건에 따라 분기하는 if, if~else 및 switch 문의 사용법을 학습한다 . 특정 문장을 반복적으로 수행하는 for, while, do~while 문의 사용법을 학습한다 . 보조 제어문인 break, continue 문의 사용법을 학습한다. 제어문 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 제어문의 개념 선택문 반복문 분기문

33 장장 ㅎㅎ

• 제어문의 개념• 선택문• 반복문• 분기문

제어문제어문

동의대 김 미 진

C++ C++ 프로그래밍 기초프로그래밍 기초 : 객체지향의 시작

Page 2: 제어문의 개념 선택문 반복문 분기문

2

학습목표 조건에 따라 분기하는 if, if~else 및 switch 문의 사용법을

학습한다 . 특정 문장을 반복적으로 수행하는 for, while, do~while 문의

사용법을 학습한다 . 보조 제어문인 break, continue 문의 사용법을 학습한다 .

2 장 . 자료형과 연산자

Page 3: 제어문의 개념 선택문 반복문 분기문

3

제어문제어문은 프로그래머가 특정 문장을 건너 띄게도 하고 특정 문장을 반복 실행하게도 하면서 프로그램의 흐름을 조절하는 역할을 한다 .

Section 01 제어문의 개념

Page 4: 제어문의 개념 선택문 반복문 분기문

4

if 문 if 문 은 주 어 진 조 건 을 만 족 하 는 경 우 에 만 특 정 문 장 을 수행하도록 하는 제어문이다 .

Section 02 선택문

문장 1; if( 조건문 ) {    문장 2; } 문장 3;

Page 5: 제어문의 개념 선택문 반복문 분기문

5

[ 실습하기 3-1] if 문을 사용해 절대값 구하기

01  #include<iostream>02  using namespace std; 03  void main( )04  {05    int x;0607    cout << " 정수값을 입력하세요 ? => ";08    cin >> x;0910    if(x < 0) 11       x = -x;1213    cout << " 절대값 => " << x << "\n";14  }

[ 예제 3-1]3_1.cpp

Page 6: 제어문의 개념 선택문 반복문 분기문

6

if else 문 if~esle 문은 두 가지 경우 중 한 가지만 선택할 때 사용한다 .

조건에 만족할 때 처리할 문장이 하나일 경우에는 중괄호를 생략할 수 있지만 여러 문장을 수행해야 할 경우에는 반드시 중괄호로 묶어주어야 한다 .

Section 02 선택문

문장 1; if( 조건문 ) { 문장 2; } else{ 문장 3; } 문장 4;

Page 7: 제어문의 개념 선택문 반복문 분기문

7

[ 실습하기 3-2] if~else 문을 사용해 짝홀수 판별하기

01  #include<iostream>02  using namespace std; 03  void main( )04  {05     int x;0607     cout << " 정수값을 입력하세요 => ";08     cin >> x;09     10     if(x % 2 == 1) 11        cout << " 홀수이다 . \n";12     else13        cout << " 짝수이다 . \n";14  }

[ 예제 3-2]3_2.cpp

Page 8: 제어문의 개념 선택문 반복문 분기문

8

다중 if~else 문 if~else 문을 여러 번 사용하는 다중 if~else 문은 두 가지 이상의 조건문을 둘 수 있으며 각각의 조건에 맞는 블록을 수행할 수 있다 .

Section 02 선택문

if( 조건문 1){ 문장 1; } else if( 조건문2){ 문장 2; } else if( 조건문3){ 문장 3; } else { 문장 n; }

Page 9: 제어문의 개념 선택문 반복문 분기문

9

[ 실습하기 3-3] 다중 if~else 문을 이용해 학점 계산하기

01  #include<iostream>02  using namespace std; 03  void main( )04  {05      int score;   // 입력받은 점수를 저장할 변수06      char grade;  // 구한 학점을 저장할 변수07      cout<<" 점수를 입력하세요 : ";08      cin>>score;09      // 조건 검사10      if(score>=90)          // score 가 90 이상이냐 ?11         grade='A';          // 만족하면 grade='A'12      else if (score>=80)    // 아니면 score 가 80 이상이냐 ?13         grade='B';          // 만족하면 grade='B'  14      else if (score>=70)    // 아니면 score 가 7 이상이냐 ?15         grade='C';          // 만족하면 grade='C'16      else if (score>=60)    // 아니면 score 가 6 이상이냐 ?17         grade='D';          // 만족하면 grade='D'18      else                   // 아니면19         grade='F';          // grade='F'20      cout<<" 입력한 점수 " <<score<<" : "<<grade<<" 학점입니다 .\n";21  }

[ 예제 3-3]3_3.cpp

Page 10: 제어문의 개념 선택문 반복문 분기문

10

[ 실습하기 3-4] 동등 연산자 대신 대입 연산자를 사용했을 경우 발생하는 문제점

01 #include<iostream>02 using namespace std; 03 void main( )04 {05    int i=200;06    cout<<"  i 가 300 이냐 ? " ;07    if(i==300) 08       cout<<"true\n";09    else10       cout<<"false\n";11     12    cout<<"  i 가 300 이냐 ? " ;13    if(i=300)14       cout<<"true\n";15    else16       cout<<"false\n";17 }

[ 예제 3-4]3_4.cpp

Page 11: 제어문의 개념 선택문 반복문 분기문

11

다중선택 switch 문 여러 가지 중 하나를 선택할 때 사용하는 다중 선택문이다 .

다중 if else 문은 조건문을 검사해 참이나 거짓의 결과로 문장을 수행하지만 switch 문은 참이나 거짓의 결과를 반환하는 논리식이 아닌 상수식에 따라 분기한다 .

Section 02 선택문

switch( 정수식 ) {    case 정수값 1 : 문장 1;[break;]    case 정수값 2 : 문장 2;[break;]    …    case 정수값 n : 문장 n;[break;]    [default:] 문장 n+1;}

Page 12: 제어문의 개념 선택문 반복문 분기문

12

[ 실습하기 3-5] switch 문으로 학점 판별하기

01 #include<iostream>02 using namespace std; 03 void main( )04 {05     int score;        // 입력받은 점수를 저장할 변수 06     char grade;       // 구한 학점을 저장할 변수 07     cout<<" 점수를 입력하세요 : ";08     cin>>score;09     10     switch(score/10)  { // 결과가 정수로 나오는 산술식11        case 10 : grade='A';break;12        case 9 : grade='A';break;13        case 8 : grade='B';break;    14        case 7 : grade='C';break;  15        case 6 : grade='D';break;  16        default : grade='F';  17     }18     cout<<" 입력한 점수 " <<score<<" : "<<grade<<" 학점입니다 .\n";19 }

[ 예제 3-5]3_5.cpp

Page 13: 제어문의 개념 선택문 반복문 분기문

13

[ 실습하기 3-6] break 문이 없는 switch 문으로 학점 판별하기

01 #include<iostream>02 using namespace std; 03 void main( )04 {05     int score;         // 입력받은 점수를 저장할 변수 06     char grade;        // 구한 학점을 저장할 변수 07     cout<<" 점수를 입력하세요 : ";08     cin>>score;09     10     switch(score/10)  { // 식11        case 10 : cout<< "A 학점입니다 ."<<endl;12        case 9 : cout<< "A 학점입니다 ."<<endl;13        case 8 : cout<< "B 학점입니다 ."<<endl;14        case 7 : cout<< "C 학점입니다 ."<<endl;15        case 6 : cout<< "D 학점입니다 ."<<endl;16        default : cout<< "F 학점입니다 ."<<endl;17     }18 }

[ 예제 3-6]3_6.cpp

Page 14: 제어문의 개념 선택문 반복문 분기문

14

for 문 지정된 횟수만큼 반복한다 .

< 초기식 >, < 조건식 >, < 증감식 >, < 문장 > 으로 구성되며 , 다른 제어문처럼 < 문장 > 이 한 행일 경우는 중괄호 ({}) 를 생략할 수 있다 .

Section 03 반복문

for(< 초 기 식 >;< 조 건 식 >;< 증 감식 >) { 문장 1; }

Page 15: 제어문의 개념 선택문 반복문 분기문

15

[ 실습하기 3-7] for 문을 이용해 1 부터 5 까지의 합계 구하기

01 #include <iostream>02  using namespace std;03  void  main()04  {05    int total=0;    // 반드시 초기화해야 한다 .06    for(int i=1;i<=5;i++)  {    07       cout<<"i ="<<i<<endl;08       total+=i;   // total=total+i;09       cout<<"total ="<<total<<endl;10    }11    cout<<"1 부터 " << i-1 <<" 까지의 합계는 "<< total <<" 입니다 "<<endl;12  }

[ 예제 3-7]3_7.cpp

Page 16: 제어문의 개념 선택문 반복문 분기문

16

[ 실습하기 3-8] 1 부터 5 까지의 홀수 합 구하기

01 #include <iostream>02 using namespace std;03 void  main()04 {05     int total=0;06     for(int i=1;i<=5;i+=2) {07        cout<<"i ="<<i<<endl;08        total=total+i; 09        cout<<"total ="<<total<<endl;10     }11    cout<<"1 부터 5 까지의 홀수 합계는 "<< total <<" 입니다 "<<endl;12 }

[ 예제 3-8]3_9.cpp

Page 17: 제어문의 개념 선택문 반복문 분기문

17

[ 실습하기 3-9] for 문을 이용해 구구단 출력하기

01 #include <iostream>02 using namespace std;03 void main()04 {05    int dan;06    cout<<" 원하는 단을 입력하세요 : ";07    cin>>dan; // 단 입력받기08    for(int j=1;j<10;j++)09       cout<< dan << " * " <<j<<" = " << dan*j <<“\n";      10 }

[ 예제 3-9]3_10.cpp

Page 18: 제어문의 개념 선택문 반복문 분기문

18

다중 for 문 for 문 안에 for 문을 포함해 사용하는 것2 차원 배열이나 3 차원 배열을 사용한 연산에서 사용된다 . 각각의 for 문은 서로 다른 루프이므로 다른 제어 변수를 사용해야 한다 .

Section 03 반복문

for(< 초기식 >;< 조건식 >;< 증감식 >) { 문장 1;   for(< 초 기 식 >;< 조 건 식 >;< 증 감식 >) { 문장 2;    } 문장 3; }

Page 19: 제어문의 개념 선택문 반복문 분기문

19

[ 실습하기 3-10] if 문을 사용해 절대값 구하기

01 #include <iostream>02 using namespace std;03 void main()04 {05   for(int dan=2;dan<=9;dan++)    // 바깥 for 문06     for(int j=1;j<10;j++)        // 안쪽 for 문07        cout << dan << " * " << j <<" = " << dan*j <<“\n";      08  }

[ 예제 3-10]3_11.cpp

Page 20: 제어문의 개념 선택문 반복문 분기문

20

조건을 먼저 검사하는 while 문 while 문은 단어의 뜻 그대로‘ ... 하는 동안’즉 , 조건이 만족하는 동안 문장을 반복 수행한다 .

Section 03 반복문

while( 조건식 ) { 문장 ; }

Page 21: 제어문의 개념 선택문 반복문 분기문

21

[ 실습하기 3-11] while 문을 사용해 1 부터 10 까지의 합 구하기

01 #include <iostream>02 using namespace std;03 void main()04 {05    int total=0;06    int i=1;           // for 문의 초기식07    while(i<=10) {     // for 문의 조건식08       total+=i;09       i++;            // for 문의 증감식10    }11    cout<<"1-10 까지의 합은 "<<total<<"\n";12 }

[ 예제 3-11]3_13.cpp

Page 22: 제어문의 개념 선택문 반복문 분기문

22

[ 실습하기 3-12] 0 을 입력할 때까지 반복하는 반복문 작성하기

01  #include <iostream>02  using namespace std;03  void main()04  {05    int num;06    cout<<" 수를 입력하세요 (0 을 입력하면 종료 ) : ";07    cin>>num;08    while(num!=0) {09       cout<< num <<“ 를 입력하셨군요 .\n";10       cout<<" 수를 입력하세요 (0 을 입력하면 종료 ) : ";11       cin>>num;12    }13   cout<< num <<“ 을 입력하였기에 반복문이 종료되었습니다 .\n";14 }

[ 예제 3-12]3_15.cpp

Page 23: 제어문의 개념 선택문 반복문 분기문

23

do~while 문반복되는 문장을 일단 한번은 실행하고 그 다음에 조건을 검사해 조건이 참이면 계속 반복하고 거짓이면 while 문을 빠져나온다 .

while 문은 조건이 거짓이면 한번도 실행하지 않는 반면 , do~while 문은 조건 검사를 나중에 하므로 조건이 거짓이더라도 한번은 실행된다 .

Section 03 반복문

do { 문장 } while( 조건식 );

Page 24: 제어문의 개념 선택문 반복문 분기문

24

[ 실습하기 3-13] do~while 문으로 좀더 간결하게 프로그램 작성하기

01  #include <iostream>02   using namespace std;03   void main()04   {05     int num;06     do{07        cout<<" 수를 입력하세요 (0 을 입력하면 종료 ) : ";08        cin>>num;09        cout<< num <<" 를 입력하셨군요 .\n";10     }while(num!=0);11    cout<< num << " 을 입력하였기에 반복문이 종료되었습니다 .\n";12  }

[ 예제 3-13]3_16.cpp

Page 25: 제어문의 개념 선택문 반복문 분기문

25

break 문프로그램의 일부를 수행하지 않고 건너뛰게 하여 switch 문 , for 문 , while 문 , do~while 문의 제어를 벗어나기 위해 사용할 수 있다 .

Section 04 분기문

while( 조건문 ) {      문장 1;    if( 조건식 )        break; 문장 2; } 다음 문장 ;

Page 26: 제어문의 개념 선택문 반복문 분기문

26

[ 실습하기 3-14] for 문에서 반복 도중에 벗어나기

01  #include <iostream>02  using namespace std;03  void main()04  {05     int total=0;06     for(int i=1;i<=10;i++) {07       if(i%2==0) // i 가 2 로 나누어서 떨어지면08         break;   // for   문을 벗어남09       total+=i;10     } 11     cout<<"i 가 "<< i <<" 일 때 for 문을 벗어 남 \n";12     cout<<"total : "<<total<<“\n”;13  }

[ 예제 3-14]3_15.cpp

Page 27: 제어문의 개념 선택문 반복문 분기문

27

continue 문프로그램을 수행하다가 continue 문을 만나면 제어가 다음 문장이 아닌 다른 곳으로 옮겨지는데 break 문처럼 실행을 중단하고 반복문을 아예 벗어나는 것이 아니라 반복문을 계속 수행하기 위해서 다시 반복문의 처음으로 돌아간다 .

Section 04 분기문

while( 조건문 ) {      문장 1;    if( 조건식 )        continue; 문장 2; } 다음 문장

Page 28: 제어문의 개념 선택문 반복문 분기문

28

[ 실습하기 3-15] continue 문의 사용법 알아보기

01 #include <iostream>02 using namespace std;03 void main()04 {05   int total=0;06   for(int i=1;i<=10;i++) {07     if(i%2==0)  //i 가 2 로 나누어서 떨어지면08       continue; // 아래 문장들은 무시되고 for 문의 시작으로 다시 돌아가서 수행한다 .  09     total+=i;10   } 11   cout<<"i 가 "<< i <<" 일 때 for 문을 벗어 남 \n";12   cout<<"total : "<<total<<“\n”;13 }

[ 예제 3-15]3_18.cpp

Page 29: 제어문의 개념 선택문 반복문 분기문

29

요약

컴퓨터 프로그램에서 실행되어야 할 문장을 지정하는 것을 제어라고 한다 .

선택문은 여러 가지 경로 중에서 하나를 선택하기 위해 사용된다 .

if 문은 조건이 참일 경우에만 지정된 동작을 실행한다 .

if else 문은 조건이 참일 때와 거짓일 때 실행될 각각의 동작을 지정한다 .

switch 문은 특정 변수나 표현식을 검사하는 일련의 결정을 처리하며 동작을 선택한다 . case 문 다음에는 대부분 break 문을 포함한다 .

for 문은 < 초기식 >, < 조건식 >, < 증감식 >,< 문장 > 으로 구성되며 , < 초기식 >,< 조건식 >,< 증감식 > 은 세미콜론 (;) 으로 구분된다 . 일반적으로 for 문은 명시적으로 반복 횟수가 정해질 때 사용되며 , while 문은 반복횟수가 정해지지 않을 때 사용된다 . do~while 문은 조건이 거짓이더라도 적어도 한번은 실행이 된다 . break 문 은 하 나 의 반 복 문 (for, while, do while) 안 에 서 실행되며 , 반복문에서 바로 빠져나오는데 사용한다 . continue 문은 하나의 반복문 (for, while, do while) 안에서 실행되며 , 반복문 안의 남은 문장들을 건너뛰고 다음 반복문의 조건을 검사한다 .

Page 30: 제어문의 개념 선택문 반복문 분기문

Thank you