2022.04.07_C++ 연산자 종류와 간단한 실습

연산자 : 데이터를 가공(연산)하는 모든 명령에 필요한 것들
1. 어떤 종류의 연산자들이 있는지?
2. 우선 순위 : 어떤 순서로 연산이 진행되는지?
3. 결합 순서 : 좌측부터 연산하는 연산자 / 우측부터 연산하는 연산자

 1)사칙연산 : 산술연산자 (좌측부터 연산), 나누기연산 실행시 나누는 값이 0이면 출력되지 않음.
            + : 더하기
             - : 빼기
             * : 곱하기
             / : 나누기         ex> 11 / 3 = 3
            % : 나머지         ex> 11 % 3 = 2
            (연산순서 : *, /, % > +, -)

예제>
int value_11 = 11;
int value_3 = 3;

cout << value_11 << " + " << value_3 << " = " << value_11 + value_3 << endl;
cout << value_11 << " - " << value_3 << " = " << value_11 - value_3 << endl;
cout << value_11 << " * " << value_3 << " = " << value_11 * value_3 << endl;
cout << value_11 << " / " << value_3 << " = " << value_11 / value_3 << endl;
cout << value_11 << " % " << value_3 << " = " << value_11 % value_3 << endl;

출력물>

 2)대입연산자 (우측부터 연산)
            = : 왼쪽 항에 오른쪽 항의 값을 대입한다. (복사한다)
                ex > int value = 10;


 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

예제>
int value_a = 10;
int value_b = 4;

value_a += value_b;               -> 변수 'value_a'는 10에서 a + b의 값인 14로 변함
value_a -= value_b;                -> 변수 'value_a'는 10에서 a - b의 값인 6으로 변함
value_a *= value_b;                -> 변수 'value_a'는 10에서 a * b의 값인 40으로 변함
value_a /= value_b;                -> 변수 'value_a'는 10에서 a / b의 값인 2로 변함
value_a %= value_b;               -> 변수 'value_a'는 10에서 a % b의 값인 2로 변함



 4)증감연산자 : 특정 변수의 값을 1씩 증가시키거나 감소시킬때 사용, 
                   변수의 앞이나 뒤에 ++, --를 붙임

예제>
int value_7 = 7;

value_7++;
cout << value_7 << endl;         -> '8' 출력
++value_7;
cout << value_7 << endl;         -> '9' 출력

                 위와 같이 '++변수명;' 혹은 '변수명++;' 실행시 출력값이 1씩 증가되나, 
                 아래와 같이 함수 내에 속한 경우는 연산 결과에 차이가 있다.

예제>
int value_7 = 7;

cout << value_7++ << endl;         -> '7' 출력
++value_7;                  
cout << value_7 << endl;             -> '9' 출력
                 
                 위 예제에서 확인할 수 있듯이 함수 내에 속한 경우 함수가 완료되는 시점에서
                 증가하게 된다.

       
 5)관계연산자 : 두 값을 비교한 결과가 '참(1,true)' 인지 '거짓(0, false)'인지 반환하는 연산자
                   < : a < b   -> a가 b보다 작으면 참을 반환
                   > : a > b   -> a가 b보다 크면 참을 반환
                   <= : a <= b -> a가 b 이하면 참을 반환
                   >= : a >= b -> a가 b 이상이면 참을 반환
                   == : a == b -> a와 b가 같으면 참을 반환

예제>
int value_4 = 4;
int value_5 = 5;

cout << (value_4 > value_5) << endl;         -> '0' 출력
cout << (value_4 < value_5) << endl;         -> '1' 출력
cout << (value_4 <= value_5) << endl;         -> '1' 출력
cout << (value_4 >= value_5) << endl;         -> '0' 출력
cout << (value_4 == value_5) << endl;         -> '0' 출력
cout << (value_4 != value_5) << endl;         -> '1' 출력


                 오늘 공부한 내용들의 실습차원에서 간단한 문제로 복습해 보았다.

복습 1>
1. 고객의 나이를 입력받아서 미성년자(19세 이하)면 false 출력, 성인이면 true 출력
2. 입력받은 나이가 20살이면 true, 아니면 false 출력
3. 입력받은 나이가 아홉수(1의 자리가 9이면)라면 true, 아니라면 false 출력

양식 : 고객의 나이를 입력하세요 : _

      성인 여부                     : 
      주민등록증 발급대상 여부 : 
      나이 아홉 수 여부           :

풀이 및 출력물>
#include
using namespace std;

int main()
{
int age;
cout << " 고객의 나이를 입력하세요: ";
cin >> age;
cout << "\n" << endl;

cout << boolalpha;
cout << " 성인 여부\t\t: " << (age > 19) << endl;
cout << " 20살 여부\t\t: " << (age == 20) << endl;
cout << " 나이 아홉 수 여부\t: " << ((age % 10) == 9) << endl;

}

복습 2>
1. 숫자를 입력받고 그 수가 17이상 24미만일때 True를 출력, 아니라면 False를 출력
int main()
{
int value;
cout << "숫자를 입력하세요 : ";
cin >> value;
cout << "\n" << endl;

int a = value >= 17;
int b = value < 24;

cout << boolalpha;
cout << "결과 : " << ((a + b) == 2) << endl;

}

물론 더 편하게 연산하는 방법도 있겠지만, 아직 배우지 않았을 뿐더러(...)
금일 배운 내용에 익숙해지기 위해 굳이 어렵게..풀어봤다.

좋은 웹페이지 즐겨찾기