ISSAC.Min

[C++ Basic] 연산자(Operator) / 조건 연산자(Conditional Operator) 본문

Programming Language/C++ Basic

[C++ Basic] 연산자(Operator) / 조건 연산자(Conditional Operator)

ISSAC.M 2019. 4. 10. 20:49
반응형

 1. 조건 연산자(Conditional Operator)


아직 설명하지 않았지만 포스팅 중간 중간 조건문이 등장 하기도 했는데 여기서 조건 연산자(Conditional Operator)는 이 조건문을 대체할 수 있는 연산자이다.


조건 연산자를 설명하기 위해서 뒤에서 설명할 조건문(if-else)을 간략히 설명하고 조건 연산자를 알아보도록 하겠다.


조건문(if - else)문은 아래처럼 사용한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
  
int main() {
    int num1;                                                  // signed 정수 num1의 선언
    cout << "Enter one number : ";                         
    cin >> num1;                                               // num1의 사용자입력
    if(num1 >= 0){                                             // num1이 0이상의 정수일 경우 출력
        cout << "This number is a positive number." << endl;
    }else{                                                     // num1이 0미만의 정수일 경우 출력
        cout << "This number is a negative number." << endl;
    }
    return 0;
  }
cs


if-else문에서 if(num1 >= 0)은 "num1가 0보다 크거나 같다면 아래와 같은 행동을 취한다."이며 else"num1가 0보다 크거나 같지 않다면 아래와 같은 행동을 취한다."가 된다.


그렇다면 조건 연산자로 위의 if-else문을 표현할려면 어떻게 하면 될까?


1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
  
int main() {
  int num1;                                                // signed 정수 num1 선언                                   
  cout << "Enter one number : ";  
  cin >> num1;                                             // num1의 사용자입력
  // 앞에서의 if-else문의 조건연산자 적용
  cout << ((num1 >= 0) ? "This number is a positive number." : "This number is a negative number.");
  return 0;
  }
cs


10번째 라인이 첫번째 예시의 if-else문을 한줄로 조건연산자 적용한 것이다. 

정확히 조건 연산자의 부분은 아래부분인데


((num1 >= 0) ? "This number is a positive number." : "This number is a negative number.")


앞에 부분인 if(~~~)(~~~) ? 라고 표현하고 그 뒤에서는 :의 앞부분은 조건이 성립했을 때의 결과, 뒷부분은 조건을 성립하지 못할 때의 결과 즉 else부분인 것이다.


 2. 실습



반응형