프로그래밍 / C++ / 언리얼

Programming/C | C++ | Unreal

[C++] 여러가지 연산

아트성 2022. 4. 7. 17:21
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
/*
[연산자]
데이터를 가공(연산)하는 모든 명령에 필요한 것들
1) 어떤 종류의 연산자들이 있는지?
2) 우선 순위 : 어떤 순서로 연산이 진행되는지?
3) 결합 순서 : 좌측부터 연산하는 연산자, 우측부터 연산하는 연산자

1. 사칙연산 : 산술연산자
+ : 더하기
- : 빼기
* : 곱하기
/ : 나누기	11 / 3 => 3
% : 나머지	11 % 3 => 2

*, /, % > +, -

2. 대입연산자
= : 왼쪽 항의 값을 대입한다. (복사한다)

3. 복합대입연산자
+= : a += b;	=> a = a + b;
-= : a -= b;	=> a = a - b;
*= : a *= b;	=> a = a * b;
/= : a /= b;	=> a = a / b;
%= : a %= b;	=> a = a % b; (a와 b는 정수형타입이어야 한다)

4. 증감 연산자
특정 변수의 값을 1씩 증가시키거나 감소시킬 때 사용한다.
변수의 앞이나 뒤에 ++ / -- 를 붙여서 사용한다.

5. 관계연산자
두 값을 비교 결과가 참(1, true)인지 거짓(0, false)인지 반환하는 연산자

< : a < b : 왼쪽 항의 값이 오른쪽 항의 값보다 작으면 참을 반환한다.
> : a > b : 왼쪽 항의 값이 오른쪽 항의 값보다 크면 참을 반환한다.
<= : 왼쪽 항의 값이 오른쪽 항의 값보다 작거나 같으면
> = : 왼쪽 항의 값이 오른쪽 항의 값보다 크거나 같으면
== : 왼쪽 항의 값과 오른쪽 항의 값이 같을 때, 참을 반환한다.
!= : 왼쪽 항의 값과 오른쪽 항의 값이 다를 때, 참을 반환한다.

6. 논리연산자 
왼쪽 항과 오른쪽 항의 값을 각각 참과 거짓으로 연산해서 
두 값을 비교해서 참과 거짓을 반환하는 연산자

&& : 논리곱(AND)
a && b : a의 결과값이 참이고 b의 결과값이 참이면 1을 반환

|| : 논리합(OR)
a || b : a의 결과값이 참이거나 b의 결과값이 참이면 1을 반환

! : 논리부정(NOT)
!a : a의 결과값이 참이면 거짓을 반환, 거짓이면 참을 반환 

7. 삼항연산자
 a ? b : c;
 a의 결과값이 참이면 b 실행문이 동작, 거짓이면 c실행문이 동작.

*/

/*
	실습.
	1.고객의 나이를 입력받아서 미성년자(19세 이하)이면 false를 출력
	성인이면 true를 출력.

	2.아까 입력 받은 나이를 기준으로, 주민등록증 발급대상이면 true를 아니면 false를 출력.

	3.아홉수(1의 자리가 9인수)인지 확인해서 true, false를 출력.

*/

int main()
{
	int left_value = 11 + 3;
	int right_value = 3;

	//left_value++;	// 15
	cout << left_value++ << endl; // 실행문이 한번 종료되야 값이 바뀐다. 1증가하기 전 값이 연산결과값이다.(후위) // 출력 14, 메모리 : 15

	//++left_value;	// 16
	cout << ++left_value << endl; // 실행문이 종료되기전에 바뀐다. 1증가된 값이 연산결과값이다.(전위) //  출력 16, 메모리 : 16

	cout << "+ : " << left_value + right_value << endl; // 17
	cout << "- : " << left_value - right_value << endl; // 11
	cout << "* : " << left_value * right_value << endl; // 42
	cout << "/ : " << left_value / right_value << endl;	// 4
	cout << "% : " << left_value % right_value << endl; // 2

	cout << "" << endl;

	left_value += right_value;
	cout << "+= : " << left_value << endl;

	left_value -= right_value;
	cout << "-= : " << left_value << endl;

	left_value *= right_value;
	cout << "*= : " << left_value << endl;

	left_value /= right_value;
	cout << "/= : " << left_value << endl;

	left_value %= right_value;
	cout << "%= : " << left_value << endl;

	cout << "%= : " << (left_value %= right_value) << endl;

	int customAge;
	int ageLimit = 19;

	cout << "고객님의 나이를 입력하십시오." << endl; 
	cin >> customAge;

	cout << "당신은 미성년자입니까? : " << boolalpha << (customAge >= 19) << endl;
	cout << "주민등록증 발급대상인가요? : " << (customAge == 20) << endl;
	cout << "혹시 아홉수? : " << ((customAge - 9) % 10 == 0) << endl;

}

 

 

증감연산자 추가 정리

 

 - 특정 변수의 값을 1씩 증가시키거나 감소시킬 때 사용한다.
 - 변수의 앞이나 뒤에 ++ / -- 를 붙여서 사용한다.

 - 증감연산자에서 연산자의 위치에 따라서 결과값이 달라진다.

 

 

정수형 변수를 설정하고 값이 14라고 가정해보자.

int value = 14;

 

 

++의 위치가 변수 에 붙어있을경우 (출력 : 14, 메모리 : 15)

 

후위 연산자라고 하며 실행문이 한번 종료되야 값이 바뀐다. 

1증가하기 전 값이 연산결과값이라는게 특징이다.

cout << left_value++ << endl;

 

 

++의 위치가 변수 에 붙어있을 경우 (출력 : 16, 메모리 : 16)

실행문이 종료되기전에 바뀌어서 변수에 할당이 된다. 

1증가 된 후의 값이 연산결과값이다.(전위)

cout << ++left_value << endl;




 

 

꿀팁

naver 2Dcoding font 장점

 - 관계연산자, 논리연산자를 쉬운방식으로 표기해주는 폰트다.

 - 글자수를 줄여줌

 

폰트 설정 방법:

폰트 설치 - 압축파일 실행 - D2CodingAll - 폰트클릭 - 설치 - Visual Studio 재실행 - 도구 - 옵션 - 환경 - 글꼴 및 색 - 

글꼴 설정

 

 

 

반응형

'Programming > C | C++ | Unreal' 카테고리의 다른 글

[C++ ] 구조체  (0) 2022.04.15
[C++] rand(), 삼항연산자 이용  (0) 2022.04.12
[C++] 데이터 타입 / 변수 / 표기법  (0) 2022.04.06
[C++] 자료형  (0) 2022.04.05
[언리얼 엔진] FPS게임 움직임 구현  (1) 2022.03.01