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 등 다른 값을 사용해서도 많이 사용합니다.