바닥에서 시작하는 C++ (6) - 연산자(Operator)

연산자(Operator)

C++은 여러 종류의 연산을 위해 다양한 연산자(operator)를 제공하고 있습니다.

산술연산자(Arithmetic Operator)

산술 연산자 설명
+ 왼쪽의 피연산자에 오른쪽의 피연산자를 더함.
- 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌.
* 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함.
/ 왼쪽의 피연산자를 오른쪽의 피연산자로 나눔.
% 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 반환함.

예제

int num1 = 10;

int num2 = 4;

 

cout << "+ 연산자에 의한 결괏값은 " << num1 + num2 << "입니다." << endl;
// + 연산자에 의한 결괏값은 14입니다.

cout << "- 연산자에 의한 결괏값은 " << num1 - num2 << "입니다." << endl; 
// - 연산자에 의한 결괏값은 6입니다.

cout << "* 연산자에 의한 결괏값은 " << num1 * num2 << "입니다." << endl; 
// * 연산자에 의한 결괏값은 40입니다.

cout << "/ 연산자에 의한 결괏값은 " << num1 / num2 << "입니다." << endl; 
// / 연산자에 의한 결괏값은 2입니다.

cout << "% 연산자에 의한 결괏값은 " << num1 % num2 << "입니다."; 
// % 연산자에 의한 결괏값은 2입니다.

대입 연산자(Assignment Operator)

대입 연산자 설명
= 왼쪽의 피연산자에 오른쪽의 피연산자를 대입함.
+= 왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후,
그 결괏값을 왼쪽의 피연산자에 대입함.
-= 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺀 후,
그 결괏값을 왼쪽의 피연산자에 대입함.
*= 왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후,
그 결괏값을 왼쪽의 피연산자에 대입함.
/= 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후,
그 결괏값을 왼쪽의 피연산자에 대입함.
%= 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후,
그 나머지를 왼쪽의 피연산자에 대입함.

예제

int num1 = 8;

int num2 = 8;

int num3 = 8;

 

num1 = num1 + 5;

num2 += 5;

num3 =+ 5;

 

cout << "- 연산자에 의한 결괏값은 " << num1 << "입니다." << endl;
// -  연산자에 의한 결괏값은 13입니다.

cout << "+= 연산자에 의한 결괏값은 " << num2 << "입니다." << endl;
// += 연산자에 의한 결괏값은 13입니다.

cout << "=+ 연산자에 의한 결괏값은 " << num3 << "입니다.";
// =+ 연산자에 의한 결괏값은 5입니다.

주의

위의 예제에서 num =+ 5 연산은 단순히 숫자 5를 변수 num3에 대입하는 연산이 되었습니다.
이처럼 복합 대입 연산자에서 연산자의 순서는 매우 중요하므로 주의를 기울여야 합니다.

논리 연산자(Logical Operator)

논리 연산자 설명
&& 논리식이 모두 참이면 1을 반환함. (논리 AND 연산)
|| 논리식 중에서 하나라도 참이면 1을 반환함. (논리 OR 연산)
! 논리식의 결과가 참이면 0을, 거짓이면 1을 반환함. (논리 NOT 연산)

예제

int num1 = 3;

int num2 = -7;

bool result1, result2;

 

result1 = (num1 > 0) && (num1 < 5);

result2 = (num2 < 0) || (num2 > 10);

 

cout << "&& 연산자에 의한 결괏값은 " << result1 << "입니다." << endl;
// && 연산자에 의한 결괏값은 1입니다.

cout << "|| 연산자에 의한 결괏값은 " << result2 << "입니다." << endl;
// || 연산자에 의한 결괏값은 1입니다.

cout << " ! 연산자에 의한 결괏값은 " << !result2 << "입니다." << endl;
// ! 연산자에 의한 결괏값은 0입니다.

삼항 연산자(Ternary Operator)

문법

조건식 ? 반환값1(True) : 반환값2(False)

물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환합니다.

조건문과 같은 방식으로 쓰이며 이를 다음과 같이 조건문으로 바꾸어 쓸 수도 있지만, 조건문에 대한 자세한 내용은 후술하도록 하겠습니다.

if (조건식)

{
    반환값1(True)
}

else
{
    반환값2(False)
}
© 2022 JunhoBaik, Built with Gatsby