여행을 개발하다

제어문1. If 본문

BackEnd/C++

제어문1. If

yhtragramming 2019. 5. 8. 12:51

안녕하세요 ^^

 

오늘 포스팅 할 내용은!

제어문의 첫 관문인 'If'입니다.

 

모든 프로그래밍의 기본은 제어문이고,

그것을 얼마나 능수능란하게 다루는가가

개발자의 성패를 좌우한다고 합니다.

 

확실하게 집고 넘어가야 할 제어문!

'If'문으로 시작해보겠습니다.


1. 단순 if문

- 형식

if(조건식)

조건이 참일 경우 실행할 문장;

- 조건식에는 관계식이나 논리식이 사용되며 조건식이 참이면 다음 문장을 수행하고, 거짓이면 아무런 문장도 수행하지 않는다.

- 실행 문장이 두 문장 이상일 경우에는 반드시 '{ }' 블록으로 묶어주어야 한다.

 

임의의 두 수를 입력 받아, 나눗셈을 하는 알고리즘 예제를 통해 살펴보겠습니다.

* 정수형 변수 num1, num2를 선언하고, 각각 정수형으로 초기치를 입력 받습니다.

* 만약 num2가 0으로 입력될 경우 '0으로 나누는 것은 불가합니다'라는 메시지를 출력합니다.

* 하지만 num2가 0이 아닐 경우에는 나눗셈 연산을 하여 몫을 출력합니다.

실행 결과 num2 변수에 3을 입력했을 때, 3이라는 몫이 제대로 출력되고

 

반대로 0을 입력했을 때, '0으로 나누는 것은 불가합니다'라는 메시지가 출력됩니다.

 

여기서 가장 주의할 점은 "조건이 참일 경우 실행할 문장이 2문장 이상일 경우",

반드시 '{ }'로 묶어줘야 한다는 점입니다.

 

그 이유는 'if문의 영향력이 어디까지인지' 컴퓨터에 명시해줘야 하기 때문입니다.

 

위의 코드에서 num2 = 0일 경우, 실행될 두 개의 문장을 중괄호 없이 빌드해 보겠습니다.

「 printf("0으로 나누는 것은 불가합니다.\n");

printf("제대로 입력하세요!\n"); 」

 

그 결과 값은,

「제대로 입력하세요!

3」

 

이를 통해, "printf("0으로 나누는 것은 불가합니다.\n")"는 if문의 loop를 벗어나 무조건 실행된다는 사실을 확인해 볼 수 있습니다.

 

'{ }'로 다시 묶어 실행 결과, 정상적으로 구현이 된다는 것을 확인할 수 있습니다.

2. If ~ else문

- 형식

if(조건식)

조건이 참일 경우 실행할 문장;

else

실행할 문장;

- if ~ else문은 선택적으로 문장을 수행하게 된다. 만약 if 다음의 조건식이 참이면 문장1을 수행하고, 만약 조건식이 거짓이면 문장2를 수행한다.

- 단순 if문과 마찬가지로 실행할 문장이 여러 개라면 반드시 '{ }'로 묶어줘야 한다.

 

 

임의의 수를 입력 받아, 3의 배수인지 아닌지를 판단하는 알고리즘 예제를 통해 살펴보겠습니다.

* 정수형 변수 num을 선언하고, 정수형으로 초기치를 입력 받습니다.

* 만약 num이 3으로 나누어 나머지가 0이 될 경우, 3의 배수라는 메시지를 출력합니다.

* 하지만 num이 3으로 나누어 떨어지지 않을 경우, 3의 배수가 아니라는 메시지를 출력합니다.

 

정수형 변수 num에 10을 입력했을 때는, 주어진 조건식이 참이 아니므로 else 다음의 문장을 수행하였습니다.

 

반대로 if문의 조건식이 참이 경우, if 다음 문장을 실행한다는 것을 확인할 수 있습니다.

 

3. 다중 if문

- 형식

if(조건식1)

문장1;

else

if(조건식2)

문장2;

else

if(조건식3)

문장3;

문장4;

 

- if ~ else의 한 형태로서 조건이 여러 개가 있는 경우 선택적으로 문장을 수행하는 제어문.

- 조건식1이 참이면 문장1을 수행하고 if문을 빠져나와 문장4를 수행한다.

- 조건식1이 거짓이면 조건식2를 수행하고, 조건식2가 참일 경우 문장 2를 수행한다.

- 조건식1이 거짓이고, 조건식2 또한 거짓일 때, 조건식3을 수행하며 참일 경우 문장3을 실행한다.

 

다중 if문의 사용 예제를 살펴보겠습니다.

 

* 문자형 변수 ch를 선언하고, 사용자에게 작업하기 원하는 사칙 연산의 종류를 입력하여 대입합니다.

「Add(a), Subtract(s), Multiply(m), Divide(d)」

* 정수형 변수 a, b를 선언하고, 각각 첫 번째, 두 번째 숫자로 입력 받습니다.

* 사용자가 a를 입력하면 더하기 작업을, s를 입력하면 빼기 작업을, m를 입력하면 곱하기 작업을, d를 입력하면 나누기 작업을 하는 알고리즘을 완성합니다.

 

a, 더하기 연산 결과

 

s, 빼기 연산 결과

 

 

m, 곱하기 연산 결과

 

d, 나누기 연산 결과

 

코드 실행 결과, 사용자가 어떤 값을 ch 변수에 입력하느냐에 따라 결과 값이 달라진다는 사실을 확인할 수 있었습니다.

 

프로그램이 복잡해질수록 다양한 조건들을 판단해야 합니다.

하지만 그것을 모두 프로그래머와 사용자가 판단해야 한다면 머리가 너무 아프겠죠...?

if문은 이러한 문제에 대한 솔루션이라고 생각합니다.


 

지금까지 제어문인 if문, 세부적으로 if ~ else 구문과, 다중 if문에 대해서도 알아보았습니다.

이상 포스팅을 마치겠습니다 : )

'BackEnd > C++' 카테고리의 다른 글

제어문3. for  (0) 2019.05.08
제어문2. Switch  (0) 2019.05.08
연산자(Operater)  (0) 2019.05.08
표준 입출력 함수(printf)  (0) 2019.05.08
변수(variable)  (0) 2019.05.07
Comments