연산자2

김동현·2022년 4월 11일
0

연산자

데이터를 가공(연산)하는 모든 명령에 필요한 것들
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; (b == 0, 런타임에러 발생)
%= : a %= b;	 -> a = a % b; (데이터타입이 정수형이 아닐때)

4. 증감연산자

특정 변수의 값을 1씩 증가시키거나 감소시킬 때 사용하는 연산자/
변수명 앞이나 뒤에 ++ / -- 를 붙여서 사용한다.
int inputKey = 10;
cout << inputKey++ << endl; // : 변수값 변동 후 출력 // 10
cout << ++inputKey << endl; // : 출력 후 변수값 변동 // 12
cout << inputKey-- << endl; // : 변수값 변동 후 출력 // 12
cout << --inputKey << endl; // : 출력 후 변수값 변동 // 10

5. 관계연산자

두 항의 값을 비교한 결과가 참(1, true) 또는 거짓(0, false)으로 반환되는 연산자

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 << !-300 << endl; // 0 // 0이외의 숫자는 다 참으로 취급

7. 삼항연산자

a ? b : c;
a의 결과값이 참이면 b실행문이 동작, 거짓이면 c실행문이 동작

	//(10 > 5) ? cout << "10이 5보다 크다." : cout << "10이 5보다 작다"; 
    // (괄호 안의 값이) 참이면 b 거짓이면 c
	//cout << endl;

난수 (랜덤값)
rand(); // 0 ~ 32767 사이의 랜덤한 값이 반환된다. 숙제 1  몇바이트인가
함수 내부에 seed값이 있어서 이 값에 의해서 리턴값이 정해진다
기본적으로 seed : 1로 세팅되어 있다

srand(time(NULL)); // 숫자랜덤한 값으로 반환됨

*/

/*
실습1. 3 ~ 7 사이의 랜덤한 숫자를 출력하는 프로그램을 작성하자.
(3, 7 포함)

실습2. 가장 작은 값과 큰 값을 입력 받아서, 그 사이의 임의의 값을 출력하는 프로그램을 작성하자.

실습3. 프로그램을 실행하면 내부적으로 1 ~ 9 사이의 숫자가 정답으로 정해진다. 
유저가 1 ~ 9 사이의 숫자를 입력하면 맞으면 true, 틀리면 false를 출력한다.

*/

실습

#include
#include

using namespace std;

int main()
{
//실습1.
//3 ~ 7 사이의 랜덤한 숫자를 출력하는 프로그램을 작성하자.

srand(time(NULL));
cout << "3 ~7 사이의 랜덤한 숫자를 출력 : " << rand() % 5 + 3 << endl; // 구해야하는 숫자갯수 3~7 5개 (%5)  , 시작하는 숫자 (+3)

//실습2. 
	//가장 작은 값과 큰 값을 입력 받아서, 그 사이의 임의의 값을 출력하는 프로그램을 작성하자.

int small_num;
int large_num;

cout << "가장 작은 값 : ";
cin >> small_num;
cout << small_num << endl;

cout << "가장 큰 값 : ";
cin >> large_num;
cout << large_num << endl;

cout << "임의의 값 : " << rand() % (large_num - small_num + 1) + small_num << endl; // (가장 큰값 - 가장 작은값 + 1) + 가장 작은값

//실습3.
	//프로그램을 실행하면 내부적으로 1 ~9 사이의 숫자가 정답으로 정해진다.
	//유저가 1 ~9 사이의 숫자를 입력하면 맞으면 true, 틀리면 false를 출력한다.

int in_number;
int right_answer = rand() % 9 + 1;

cout << boolalpha;
cout << "1 ~ 9 사이의 숫자를 입력하시오 : ";
cin >> in_number;

cout << (in_number == right_answer) << endl;
cout << "정답은 " << right_answer << " 입니다!" << endl;

}

profile
해보자요

0개의 댓글