Pages

Showing posts with label C언어 학습-1(제어문). Show all posts
Showing posts with label C언어 학습-1(제어문). Show all posts

Saturday, January 6, 2018

C/C++ 언어 프로그래밍-제어문7

C/C++언어 코딩 복습-제어문 7 (do while )

- do while : while 문과 do while 문은 거의 비슷하지만 특징적인 차이가 있습니다. while 문은 조건을 만족하지 않으면 반복처리 수행문을 한번도 수행하지 않고 빠져 나오는 반면 do while 문은 최소 한번은 수행한다는 것입니다. 구조는 다음과 같습니다.

do while

do {
'수행문장' ;
}while(조건);

- do while 문도 while 문과 마찬가지로 조건에 만족하면 반복수행을, 조건을 만족하지 않으면 반복을 빠져 나오게 됩니다. , 수행문장을 한번 수행한 조건을 물어본다는 차이점이 있습니다.

사용예시 :
예제코드

#include <iostream>
using namespace std;

int main() {
     int a;
     cout << "Enter a natural number between 10 and 20. : ";
     cin >> a;

     do{
          cout << " Wrong !" << endl;
          cout << " (Retry) Enter a natural number between 10 and 20. : ";
          cin >> a;
          }while(a != 15);

     cout << " Bingo !" << endl;

          return 0;
}

- 앞의 while 예제를 간단하게 do while 변형한 코드입니다. (현재는 잘못된 코드로 while do while 차이를 보이기 위해 작성한 코드 입니다.)

실행결과


- 실행을 하면 10 20 사이의 자연수를 입력하라는 문구가 나옵니다. 먼저 정답인 15 입력하고 엔터를 쳐보겠습니다.


- 정답인 15 입력하였는데 틀렸다고 나옵니다. 이유는 a 15 입력 받은 do while 수행문을 한번 실행하고 다시 입력을 받는 상태로 왔기 때문입니다.

- while 다음에 있는 조건문에는 아직 도달하지 않았습니다. 다른 숫자를 한번 넣어보고 정답을 입력해 보겠습니다.


- 5 입력하니 잘못된 결과라고 나오고 다시 입력을 받습니다. 정답인 15 입력하니 "Bingo !" 라는 문장이 나옵니다.

- 이제 잘못된 예제를 고쳐보도록 하겠습니다. 여러 가지 방법이 있지만 여기서는 아주 간단하게 고쳐보겠습니다.

#include <iostream>
using namespace std;
int main() {
     int a;

     do{
          cout << " Enter a natural number between 10 and 20. : ";
          cin >> a;
          }while(a != 15);

     cout << " Bingo !" << endl;
     return 0;
}

- 정수형 변수 a 선언하고 " Enter a natural number between 10 and 20. : " 출력문과 cin do {} 괄호 안에만 작성하였습니다.

- 실행을 시키면 수행문이 수행돼 " Enter a natural number between 10 and 20. : " 출력하고 값을 입력 받습니다. 처음부터 15 넣어보겠습니다.


- 잘못된 부분이 고쳐졌음을 확인할 있습니다. 이번에는 다른 숫자 개를 넣어보고 15 입력해보겠습니다.


- 답이 틀리면 계속 입력을 하라는 문구가 나오고 15 입력하면 "Bingo !" 라는 문장이 출력되고 프로그램이 종료가 됩니다. 

C/C++ 언어 프로그래밍-제어문6

C/C++언어 코딩 복습-제어문 6 (while )

- while : 반복적인 작업을 하는 다른 제어문으로는 while / do while 문이 있습니다. for 문과의 차이점은 조건식만 작성하여 조건을 만족하면 반복을, 만족하지 않으면 반복문을 빠져 나온다는 것입니다. 초기식과 증감식이 없다는 것입니다. 먼저 while 문에 대해 살펴보겠습니다. 구조는 다음과 같습니다.

while
while(조건){
'수행문장' ;
}

- 조건이 참이면 수행문장을 반복 수행하고, 거짓이면 while 문을 빠져 나오게 됩니다.

- 간단한 예로 다시 살펴보겠습니다.

사용예시 :
예제코드

#include <iostream>
using namespace std;

int main() {
     int a;

     cout << "Enter a natural number between 10 and 20. : ";
     cin >> a;

     while(a != 15){
          cout << " Wrong !" << endl;
          cout << " (Retry) Enter a natural number between 10 and 20. : ";
          cin >> a;
          }

     cout << " Bingo !" << endl;

          return 0;
}

- 정수형 변수 a 선언하고 cin 통해 자연수를 입력 받게 하였습니다. while 문의 조건이 'a 15 같지 않다 (다르다)' 이므로 a 값이 15 다를 (조건이 참일 ) 계속 반복문을 수행해 " Wrong !" 문장과      " (Retry) Enter a natural number between 10 and 20. : " 문장을 출력하며 다시 입력을 받게 하였습니다.

- a 값이 15 되면 조건식이 거짓이 되면 반복문을 빠져 나오고 " Bingo ! 라는 문장이 출력 됩니다.

실행결과


- 실행을 하면 10 20 사이의 자연수를 입력하라는문구가 나옵니다. 먼저 11 입력하고 엔터를 쳐보겠습니다.


- "Wrong !" 이라는 문구가 나오고 다시 입력하는 문장이 출력 됩니다.


- 현재 15 라는 답을 알고 있으므로 다른 몇개의 다른 숫자를 입력해 보겠습니다. 계속 틀렸다고 나옵니다. 15 라고 입력하니 "Bingo !" 라는 문장이 출력되고 프로그램이 종료 됩니다. 

C/C++ 언어 프로그래밍-제어문5

C/C++언어 코딩 복습-제어문 5 (for )

- 다른 예제로 간단한 구구단 출력을 for 문을 사용해 출력해보도록 하겠습니다.

예제코드

#include <iostream>
using namespace std;

int main() {

     int a;

     cout << "Enter a natural number : ";
     cin >> a;

          cout << endl;

     for(int i = 1; i < 10; i++){
       cout<< a << " * "<< i << " = " << a*i << endl;
            }

          return 0;
}

- 먼저 구구단의 단수를 저장하는 정수형 변수 a 선언합니다. 그리고 cin 통해 입력 받은 단수를 변수 a 저장합니다.

참고: cin 키보드로부터 (데이터) 입력받을 사용되는 문구로 삽입연산자 >>  다음에 값을 저장할 변수를 기입합니다.

- for 반복문을 통해 i 1 부터 9 까지 반복되게 작성하였습니다.

실행결과


- 실행을 하면 자연수를 입력하라는 문구가 나옵니다. 예로 7 입력하고 엔터키를 누르면 다음과 같은 구구단 7 단이 출력됩니다.

실행결과


C/C++ 언어 프로그래밍-제어문4

C/C++언어 코딩 복습-제어문 4 (for )

- 앞에서는 조건에 의한 제어문을 복습하였습니다. 여기서는 반복적인 작업을 하는 제어문에 대해 알아보겠습니다.

for : 단순하게 반복적인 작업을 가능하게 하는 제어문중 하나로 for 반복문이 있습니다. 주어진 횟수만큼 반복하는 제어문으로 코딩 많이 쓰이는 제어문중 하나입니다. 구조는 다음과 같습니다.

for(초기식(초기값) ; 조건식(마지막값) ; 증감){
반복 수행문장들
}

- 먼저 초기식 (초기값) 가지고 조건식을 처리 합니다. 이때 조건식의 조건을 충족시키지 못하면 for 반복문을 빠져 나오게 됩니다.

- 조건에 만족하면 반복수행문을 수행하고 증감식에 따라 증감 과정을 거친 다시 조건식의 조건에 맞는지를 판단합니다. 조건에 맞으면 반복 수행문을 수행하고 같은 과정을 반복합니다. 조건식의 조건에 맞지 않으면 for 반복문을 빠져 나옵니다.

- 간단한 예로 다시 살펴보겠습니다.

사용예시 :

예제코드

#include <iostream>
using namespace std;

int main() {

     for(int i = 0; i < 5; i++){
       cout<<" i = "<< i << endl;
            }

          cout<<endl;
     for(int j = 1; j <= 5; j++){
       cout<<" j = "<< j << endl;
            }
          return 0;
}

실행결과

- 첫번째 for 반복문을 먼저 살펴보겠습니다.

(1) 초기식 (초기값)에서는 정수형 변수 i 정의하고 i 0 대입합니다. i 에는 0 대입되고 값이 초기값으로 사용됩니다.

(2) 다음 조건식 i < 5 조건을 판단합니다. i 에는 0 대입되어있고 i < 5 조건을 만족하기 때문에 반복문장 cout<<" i = "<< i << endl; 수행해 i = 0 이라는 문장이 출력됩니다.

(3) 다음 중감식 i++ 수행해 i 값을 하나 올려 1 만듭니다. 결과적으로 i 에는 1 대입됩니다.

(4) 다시 조건식으로 이동해 i < 5 조건을 판단합니다. i 에는 1 대입되어있고 i < 5 조건을 만족하기 때문에 반복문장 cout<<" i = "<< i << endl; 수행해 i = 1 이라는 문장이 출력됩니다.

(5) 과정을 조건식이 거짓일 까지 반복합니다. i 5 이상 때부터는 i < 5 라는 조건을 만족하지 못하므로 최종적으로 i = 4 까지 반복해 문장을 출력합니다.

- 두번째 for 반복문은 초기식과 조건식을 조금 다르게 설정했습니다. 초기식은 j = 1 부터, 그리고 조건식은 j <= 5 작성해 첫번째 for 반복문과 다른 결과를 보였습니다. j 1 부터 시작하였고 조건식 j <= 5 j 6 이상일 때부터 거짓이기 때문에 j 값이 1 부터 5 까지 만을 출력합니다.

- for 반복문의 시작은 보통  i = 0 처럼 0 으로 하는 경우가 많은데 사용자 마음대로 혹은 코딩상의 이유로 1, 2, 3 다른 값을 사용해서도 많이 사용합니다.