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;
}

 

 

실행 결과