C++
연산자
yoooon1212
2024. 10. 10. 00:39
연산자
대입/ 산술/ 관계 연산자
논리/ 조건/ 비트 연산자
연산자
연산자
- 값을 계산하거나 비교하는 데 사용하는 것
- 대입 연산자, 산술 연산자, 관계 연산자, 논리 연산자, 할당 연산자, 삼항 연산자, 비트 연산자 등
대입 연산자
- =
- 오른쪽의 값을 왼쪽에 대입함(a = 3)
- 오른쪽의 값을 왼쪽에 할당함(a = b)
산술 연산자
- 더하기, 빼기, 곱하기, 나누기 같은 계산
- 이항 연산자 : 하나의 항으로는 연산을 수행할 수 없음(예를 들어 3 + (x) , 2 * (x))
- 단항 산술 연산자 : 하나의 항으로도 연산을 수행할 수 있음(예를 들어 ++, -- => a++ -> a = a + 1)
더하기 연산자
#include <iostream>
using namespace std;
int main() {
int a = 1;
a = a + 1;
cout << "변수 a의 값은 " << a << "입니다." << endl;
return 0;
}
실행 결과
더하기 연산자 간소화
#include <iostream>
using namespace std;
int main() {
int a = 2;
int b = 1;
// a = a + b;
// a = a + 3;
// a += b;
a += 3;
cout << "변수 a의 값은 " << a << "입니다" << endl;
return 0;
}
실행 결과
빼기 연산자 간소화
#include <iostream>
using namespace std;
int main() {
int a = 3;
// a = a - 2;
a -= 2;
cout << "변수 a의 값은 " << a << "입니다" << endl;
return 0;
}
실행 결과
곱하기 연산자 간소화
#include <iostream>
using namespace std;
int main() {
int a = 2;
// a = a * 2;
a *= 2;
cout << "변수 a의 값은 " << a << "입니다" << endl;
return 0;
}
실행 결과
나누기 연산자 간소화
#include <iostream>
using namespace std;
int main() {
int a = 2;
int b = 2;
// a = a / b;
a /= b;
cout << "변수 a의 값은 " << a << "입니다" << endl;
return 0;
}
실행 결과
나머지 연산자 간소화
#include <iostream>
using namespace std;
int main() {
int a = 7;
int b = 2;
// a = a % b;
a %= b;
cout << "변수 a의 값은 " << a << "입니다" << endl;
return 0;
}
실행 결과
단항 산술 연산자
- 다른 연산자와 결합되는 경우 순서에 따라 값이 바뀜
- a++ (후위 연산자)
- ++a (전위 연산자)
실습 문제
#include <iostream>
using namespace std;
int main() {
int a = 2;
a = a + 1;
a++;
++a;
cout << "변수 a의 값은 " << a << "입니다" << endl;
}
2에서 총 3번 1씩 더해짐 => 5 출력됨.
실행 결과
관계 연산자
- 두 개의 피연산자의 값을 비교하여 그 결과를 참, 거짓으로 나타내는 연산자
- 참 : 1
- 거짓 : 0
== 연산자
#include <iostream>
using namespace std;
int main() {
cout << "5 == 5의 값은 " << (5 == 5) << "입니다" << endl;
cout << "5 == 4의 값은 " << (5 == 4) << "입니다" << endl;
return 0;
}
실행 결과
!= 연산자
#include <iostream>
using namespace std;
int main() {
cout << "5 != 5의 값은 " << (5 != 5) << "입니다" << endl;
cout << "5 != 4의 값은 " << (5 != 4) << "입니다" << endl;
return 0;
}
실행 결과
비교 연산자
#include <iostream>
using namespace std;
int main() {
int a = (10 > 5);
int b = (10 < 5);
cout << "10 > 5의 값은 " << a << "입니다" << endl;
cout << "10 < 5의 값은 " << b << "입니다" << endl;
return 0;
}
실행 결과
#include <iostream>
using namespace std;
int main() {
int a = (10 >= 5);
int b = (10 <= 5);
int c = (10 <= 10);
cout << "10 >= 5의 값은 " << a << "입니다" << endl;
cout << "10 <= 5의 값은 " << b << "입니다" << endl;
cout << "10 <= 10의 값은 " << c << "입니다" << endl;
return 0;
}
실행 결과
논리 연산자
이중조건 &&(AND) 연산자
두 조건 모두 참일 때만 참
하나라도 거짓이면 거짓
#include <iostream>
using namespace std;
int main() {
int a = 3;
int b = 5;
cout << "(a < b) && (a < b)는 " << ((a < b) && (a < b)) << "입니다" << endl;
cout << "(a > b) && (a > b)는 " << ((a > b) && (a > b)) << "입니다" << endl;
cout << "(a < b) && (a > b)는 " << ((a < b) && (a > b)) << "입니다" << endl;
cout << "(a > b) && (a < b)는 " << ((a > b) && (a < b)) << "입니다" << endl;
return 0;
}
실행 결과
이중조건 ||(OR) 연산자
하나라도 참이면 전체가 참
둘 다 거짓이면 거짓
#include <iostream>
using namespace std;
int main() {
int a = 3;
int b = 5;
cout << "(a < b) || (a < b)는 " << ((a < b) || (a < b)) << "입니다" << endl;
cout << "(a > b) || (a > b)는 " << ((a > b) || (a > b)) << "입니다" << endl;
cout << "(a < b) || (a > b)는 " << ((a < b) || (a > b)) << "입니다" << endl;
cout << "(a > b) || (a < b)는 " << ((a > b) || (a < b)) << "입니다" << endl;
return 0;
}
실행 결과
조건 연산자
- 3개의 피연산자를 항으로 가짐
- 항이 3개 있어 삼항 연산자라고도 함
- A ? B : C
- A는 조건식
- A가 참이면 B 수행
- A가 거짓이면 C 수행
- B, C는 변수, 연산자, 명령어 등 다양하게 구성 가능함
비트 연산자
- &
- AND 비트 연산자
- 두 입력 비트의 값이 모두 1일 때만 출력 결과 비트가 1
- |
- OR 비트 연산자
- 두 입력 비트의 값이 둘 중 하나라도 1일 때 출력 결과 비트가 1
- 이중 조건에서는 || (2 개 사용) 했으나 비트 연산자는 | (1개만 사용)
실습 문제
대입 연산자
입력 받은 변수 n1의 값을 변수 n2, n3에도 같은 값을 대입하는 프로그램을 만드세요.
#include <iostream>
using namespace std;
int main() {
int n1, n2, n3;
cout << "n1의 값을 입력하세요 : ";
cin >> n1;
n2 = n1;
n3 = n1;
cout << "n1의 값은 " << n1 << "입니다." << endl;
cout << "n2의 값은 " << n2 << "입니다." << endl;
cout << "n3의 값은 " << n3 << "입니다." << endl;
return 0;
}
실행 결과
조건 연산자
조건 연산자를 사용해서 두 수를 입력 받아 두 수 중 큰 수를 출력하는 프로그램을 만드세요.
#include <iostream>
using namespace std;
int main() {
int a, b;
int result;
cout << "두 개의 서로 다른 정수를 입력하세요 : ";
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
result = a > b ? a : b;
cout << "입력한 두 수 중 큰 값은 " << result << "입니다." << endl;
return 0;
}
실행 결과