ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5-1장. 기본적인 연산자
    C++ 기본 문법 알아보기 2019. 1. 7. 14:35

    기본적인 사칙 연산


    프로그램을 만들면서 입력된 정보를 처리해서 원하는 정보를 출력해야 할 때가 있다.


    그럴 때 필요한 연산을 수행하는 것이 연산자의 목적이다.


    가장 기본적인 사칙 연산에 필요한 연산자들의 예제이다.


    #include <iostream>

    using namespace std;


    int main()

    {

    int a = 8;

    int b = 4;


    // 사칙 연산 수행

    int c = a + b;

    int d = a - b;

    int e = a * b;

    int f = a / b;


    // 나머지 연산 수행

    int g = a & b;


    // 출력

    cout << "8 + 4 = " << c << "\n";

    cout << "8 - 4 = " << d << "\n";

    cout << "8 * 4 = " << e << "\n";

    cout << "8 / 4 = " << f << "\n";

    cout << "8 % 4 = " << g << "\n";


    return 0;

    }



    이렇게 피연산자들이 연산되어 변수에 들어가는 것을 볼 수 있다.



    대입 연산자


    우리가 변수에 값을 넣을 때 사용하는 '=' 또한 연산자의 한 종류이다.


    이 '='라는 대입 연산자는 오른쪽 피연산자의 값을 왼쪽 피연산자에 대입한다.


    #include <iostream>

    using namespace std;


    int main()

    {

    int a, b, c;


    a = b = c = 100;


    cout << a << ", " << b << ", " << c << "\n";


    return 0;

    }



    a, b, c 모두에 100이라는 값이 들어간 것을 볼 수 있다.



    관계 연산자


    관계 연산자는 정보의 상태를 검사하는 데 사용한다.


    예를 들어 1000원이 있을 때 물건의 가격을 보고 살 수 있느지 검사하는 프로그램을 만든다고 가정해보자.


    그렇다면 물건의 가격이 담긴 변수의 값을 검사해서 1000원보다 크다면 사지 못한다고 출력해야 할 것이다.


    이런 상황에서 검사를 할 수 있게 해주는 것이 관계 연산자이다.


    다음 관계 연산자의 예제를 보자!


    #include <iostream>

    using namespace std;


    int main()

    {

    // 피연산자 선언

    int a = 3;

    int b = 5;


    // 참, 거짓을 담을 변수 선언

    bool b1, b2, b3, b4, b5, b6;


    // 관계 연산자 사용

    b1 = a > b;

    b2 = a >= b;

    b3 = a < b;

    b4 = a <= b;

    b5 = a == b;

    b6 = a != b;


    // bool 타입의 값을 문자로 출력

    cout << boolalpha;


    cout << a << " > " << b << " ---> " << b1 << "\n";

    cout << a << " >= " << b << " ---> " << b2 << "\n";

    cout << a << " < " << b << " ---> " << b3 << "\n";

    cout << a << " <= " << b << " ---> " << b4 << "\n";

    cout << a << " == " << b << " ---> " << b5 << "\n";

    cout << a << " != " << b << " ---> " << b6 << "\n";


    return 0;

    }



    이렇게 관계 연산자를 통해서 크다, 작다, 같다, 다르다와 같이 명제의 참 혹은 거짓을 가려내는 일을 할 수 있다.


    아까 말한 1000원 이하의 물건을 골라내는 코드는 어떻게 만들까?


    bool b;

    b = price <= 1000;


    이렇게 하면 물건의 가격이 1000원 이하인지 알 수 있다.



    논리 연산자


    논리 연산자는 '미성년자면서 여성'이나 '대전 혹은 서울에 사는 사람'과 같은 조건을 만들 때 사용한다.


    기본적인 논리 연산에는 AND, OR, NOT 연산이 있는데 각각 &&, ||, ! 으로 표현한다.


    AND와 OR의 예제를 보자.


    #include <iostream>

    using namespace std;


    int main()

    {

    bool b1, b2, b3, b4;


    // AND 연산

    b1 = false && false;

    b2 = false && true;

    b3 = true && false;

    b4 = true && true;


    //출력

    cout << boolalpha;

    cout << "false AND false --->" << b1 << "\n";

    cout << "false AND true --->" << b2 << "\n";

    cout << "true AND false --->" << b3 << "\n";

    cout << "true AND true --->" << b4 << "\n\n";


    // OR 연산

    b1 = false || false;

    b2 = false || true;

    b3 = true || false;

    b4 = true || true;


    cout << "false OR false --->" << b1 << "\n";

    cout << "false OR true --->" << b2 << "\n";

    cout << "true OR false --->" << b3 << "\n";

    cout << "true OR true --->" << b4 << "\n";


    return 0;

    }



    AND는 두 조건이 모두 참이어야 참이고, OR는 둘 중 하나만 참이어도 참이 나오는 것을 알 수 있다.


    이제 관계 연산자와 논리 연산자를 조합해서 사용해보자.


    성인이면서 여성인지를 판별하는 프로그램이다.


    #include <iostream>

    using namespace std;


    int main()

    {

    int age;

    int female;


    age = 20;

    female = true;


    bool b;

    b = age > 19 && female == true;


    cout << boolalpha;

    cout << "성인이면서 여성인가? : " << b << "\n";


    return 0;

    }



    잘 판별 되었다.


    NOT 연산자는 하나의 피연산자만을 받는데, true라면 false를, false라면 true를 반환한다.


    위의 코드를 살짝 변형해보자.


    #include <iostream>

    using namespace std;


    int main()

    {

    int age;

    int female;


    age = 20;

    female = true;


    bool b;

    b = !(age <= 19) && female == true;


    cout << boolalpha;

    cout << "성인이면서 여성인가? : " << b << "\n";


    return 0;

    }


    같은 결과가 출력되는 것을 볼 수 있다.


    다음 글에서는 비트 연산자에 대해서 알아보자.

Designed by Tistory.