연산자 : 데이터를 가공(연산)하는 모든 명령에 필요한 것들
1. 어떤 종류의 연산자인가
2. 우선순위 : 어떤 순서로 연산이 되는가
3. 결합순서 : 좌측부터 연산 / 우측부터 연산
1) 사칙연산 : 산술연산자 (좌측부터 연산)
+ : 더하기
- : 빼기
: 곱하기
/ : 나누기 ( ex > 11 / 3 = 3 )
% : 나머지 ( ex > 11 % 3 = 2 )
우선 순위 : (, /, %) > (+, -)
2) 대입 연산자
= : 왼쪽 항에 오른쪽 값을 대입(복사)한다.
3) 복합 대입 연산자
+= : a += b; -> a = a + b; -> a와 b의 합을 a에 적용한다.
-= : a -= b; -> a = a - b; -> a와 b의 차를 a에 적용한다.
= : a = b; -> a = a * b; -> a와 b의 곱을 a에 적용한다.
/= : a /= b; -> a = a / b; -> a와 b의 나누기 몫을 a에 적용한다. ( b == 0, runtime error 발생)
%= : a %= b; -> a = a % b; -> a와 b의 나머지를 a에 적용한다. ( 데이터타입이 정수형이 아닐때)
4) 증감연산자 : 특정 변수의 값을 1씩 증가/감소 시킬 때 사용
++ : ++value, value++
-- : --value, value--
5) 관계연산자 : 두 항의 값을 비교한 결과를 참, 거짓(1, 0)으로 반환
> : a > b -> a가 b보다 크면 참, 아니면 거짓
< : a < b -> a가 b보다 작으면 참, 아니면 거짓
>= : a >= b -> a가 b보다 크거나 같으면 참, 아니면 거짓
<= : a <= b -> a가 b보다 작거나 같으면 참, 아니면 거짓
== : a == b -> a와 b가 같으면 참, 아니면 거짓
!= : a != b -> a와 b가 같지 않으면 참, 아니면 거짓
6) 논리연산자 : 왼쪽 항과 오른쪽 항의 값을 각각 참과 거짓으로 연산 후 비교해서 참과 거짓을 반환한다.
&& : 논리곱(AND)연산자->a&& b->a, b 결과값이 모두 참이면 1을 반환
|| : 논리합(OR)연산자->a || b->a, b 중 하나라도 참이면 1을 반환
!: 논리부정(NOT)연산자
!a : a의 결과값이 참이면 거짓을 반환, 거짓이면 참을 반환
cout << (1 > 0) && (2 < 4) << endl; // 두 조건 참이므로 1 출력
cout << (3 > 5) || (4 < 6) << endl; // 두 조건 중 하나가 참을 만족하므로 1 출력
cout << !1 << endl; // 0 출력
cout << !0 << endl; // 1 출력
cout << !-300 << endl; // 0출력, 0 이외의 숫자는 참.
7) 삼항연산자
a ? b : c;->a의 결과값이 참이면 b실행문 동작, 거짓이면 c 실행문이 동작
*/
int value_A;
int value_B;
cout << "A 값 입력 : ";
cin >> value_A;
cout << "B 값 입력 : ";
cin >> value_B;
(value_A > value_B) ? cout << "B" : cout << "C" << endl;
//A, B 값을 입력받아서 A가 B보다 큰 경우 "B"를, 아닌 경우 "C"를 출력
8) 난수(랜덤) :
rand();
함수 내부에 seed값에 의해 리턴값이 정해진다.기본적으로 seed : 1로 세팅되어 있다.
시드 바꾸려면->srand(time(NULL));
srand(time(NULL));
cout << rand() << endl; //0 ~32767 사이의 랜덤한 값이 반환
예제 >
1. 3이상 7이하의 랜덤한 숫자를 출력하는 프로그램 작성
2. 가장 작은 값과 큰 값을 입력받아서 그 사이의 임의의 값을 출력하는 프로그램 작성
2-1). 작은 값 초과, 큰 값 이하 임의의 값
2-2). 작은 값 이상, 큰 값 미만 임의의 값
2-3). 작은 값 초과, 큰 값 미만 임의의 값
3. 프로그램을 실행하면 내부적으로 1~10 사이의 숫자가 정답으로 정해진다(유저에게 비공개).
유저가 1~10 사이의 숫자를 입력하고 맞으면 true, 틀리면 false 출력