연산자(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) }