C++
C++ 기초(3): 연산자(논리/3항 연산자)와 난수 (22.04.11)
Luden59
2022. 4. 12. 09:03
연산자 종류
1. 논리 연산자
2. 3항 연산자
1. 논리 연산자
- 왼쪽 항과 오른쪽 항의 값을 각각 참과 거짓으로 연산하여, 그 두 값을 비교해서 참과 거짓을 반환하는 연산자
연산자 | 설명 | 예시 |
&& | 논리곱(AND) | a&&b: a와 b의 결과값이 모두 참이면 1(참) 반환 |
|| | 논리합(OR) | a||b: a나 b의 결과값이 참이면 1(참) 반환 |
! | 논리 부정(NOT) | !a: a가 참이면 거짓 반환, a가 거짓이면 참 반환 |
//논리 연산자
cout << "\n##논리 연산자" << endl;
cout << "!1: " << !1 << endl; //0
cout << "!10: " << !0 << endl; //1
cout << "!-300: " << !-300 << endl; //0 (0이 아니면 참이다)
1. 3항 연산자
- 특정 조건에 따라 실행이 될 수도, 안 될 수도 있다.
연산자 | 설명 |
a ? b : c; | a의 결과값이 참이면 b 실행문이 동작, 거짓이면 c 실행문 동작. |
//3항 연산자
cout << "\n##3항 연산자" << endl;
(10 > 5) ? cout << "10이 5보다 크다." << endl : cout << "10이 5보다 작다." << endl; //10이 5보다 크다
(10 < 5) ? cout << "10이 5보다 크다." << endl : cout << "10이 5보다 작다." << endl; //10이 5보다 작다
- 난수
- rand()
- 0~32767 사이의 랜덤한 값이 반환된다. >> rand()의 반환값은 0~RAND_MAX까지 범위의 int 값
//난수
cout << "\n##난수" << endl;
cout << rand() << endl;
- 같은 값이 나오는 이유?
- 함수 내부에 seed 값이 있고, 이 값에 의해 리턴값이 정해진다.
- 기본적으로 seed는 1로 세팅되어 있다.
- 진정한 랜덤값을 주기 위해서는 실행할 때마다 seed 값이 변경되어야 한다.
//난수
cout << "\n##난수" << endl;
srand(time(NULL)); //unsigned int타입 _Seed 매개변수
cout << rand() << endl;
- srand(time(null)): 넣어지는 값에 따라 seed 값이 변경된다.