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 값이 변경된다.