ตัวดำเนินการ Operators C++

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับตัวดำเนินการประเภทต่างๆ ใน ​​C++ โดยใช้ตัวอย่าง ในการเขียนโปรแกรม ตัวดำเนินการคือสัญลักษณ์ที่ทำงานบนค่าหรือตัวแปร

ตัวดำเนินการคือสัญลักษณ์ที่ดำเนินการกับตัวแปรและค่าต่างๆ ตัวอย่างเช่น + เป็นตัวดำเนินการที่ใช้สำหรับการบวก ในขณะที่ – เป็นตัวดำเนินการที่ใช้สำหรับการลบ

ตัวดำเนินการในภาษา C++ สามารถจำแนกได้เป็น 6 ประเภท:

  1. Arithmetic Operators
  2. Assignment Operators
  3. Relational Operators
  4. Logical Operators
  5. Bitwise Operators
  6. Other Operators


1. ตัวดำเนินการเลขคณิต C++ (Arithmetic Operators)


ตัวดำเนินการเลขคณิตใช้เพื่อดำเนินการคำนวณกับตัวแปรและข้อมูล ตัวอย่างเช่น,

a + b;


ในที่นี้โอเปอเรเตอร์ + ถูกใช้เพื่อรวมค่า 2 ตัวแปร คือ a และ b ในทำนองเดียวกัน มีตัวดำเนินการเลขคณิตอื่นๆ มากมายใน C++

OperatorOperation
+บวก (Addition)
-ลบ (Subtraction)
*คูณ (Multiplication)
/หาร (Division)
%หารเอาผลลัพธ์เฉพาะเศษ (Modulus)

ตัวอย่างที่ 1: ตัวดำเนินการเลขคณิต (Arithmetic Operators)


#include <iostream>
using namespace std;

int main() {
    int a, b;
    a = 7;
    b = 2;

    // printing the sum of a and b
    cout << "a + b = " << (a + b) << endl;

    // printing the difference of a and b
    cout << "a - b = " << (a - b) << endl;

    // printing the product of a and b
    cout << "a * b = " << (a * b) << endl;

    // printing the division of a by b
    cout << "a / b = " << (a / b) << endl;

    // printing the modulo of a by b
    cout << "a % b = " << (a % b) << endl;

    return 0;
}


เอาท์พุต


ที่นี่ตัวดำเนินการ +, – และ * คำนวณการบวก การลบ และการคูณตามลำดับที่เราคาดไว้


/ การหาร (Division Operator)


สังเกตการทำงาน (a / b) ในโปรแกรมของเรา ตัวดำเนินการ / (division operator)

ดังที่เราเห็นจากตัวอย่างข้างต้น หากจำนวนเต็มหารด้วยจำนวนเต็มอื่น เราจะได้ผลหาร อย่างไรก็ตาม หากตัวหารหรือเศษเป็นจำนวนทศนิยม เราก็จะได้ผลลัพธ์เป็นทศนิยม

In C++,

7/2 is 3
7.0 / 2 is 3.5
7 / 2.0 is 3.5
7.0 / 2.0 is 3.5


% การหารเอาเศษ (Modulo Operator)

ตัวดำเนินการโมดูลัส % ใช้หารตัวเลข แต่เอาเฉพาะเศษไว้ เช่น

7 % 2 = 3 เศษ 1 จะเก็บเฉพาะเศษไว้ นั่นคือได้ผลลัพธ์ เป็น 1

หมายเหตุ: ตัวดำเนินการโมดูลัส % สามารถใช้ได้กับเลขจำนวนเต็มเท่านั้น


ตัวดำเนินการเพิ่มและลด (Increment and Decrement Operators)


C++ ยังจัดเตรียมตัวดำเนินการเพิ่ม ++ เครื่องหมาย บวก 2 ครั้ง และ — เครื่องหมาย ลบ 2 ครั้ง

++ การเพิ่มค่าครั้งละ 1

— การลดค่าลงครั้งละ 1

ตัวอย่างเช่น,

int num = 5;

// ตัวดำเนินการที่เพิ่มขึ้น
++num;  // 6


ที่นี่ โค้ด ++num; จะเพิ่มค่าของ num ด้วย 1 จาก 5 จึงเป็น 6


ตัวอย่างที่ 2: ตัวดำเนินการเพิ่มและลดค่า


// Working of increment and decrement operators

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 100, result_a, result_b;

    // incrementing a by 1 and storing the result in result_a
    result_a = ++a;
    cout << "result_a = " << result_a << endl;


    // decrementing b by 1 and storing the result in result_b   
    result_b = --b;
    cout << "result_b = " << result_b << endl;

    return 0;
}


เอาท์พุต


ในโปรแกรมข้างต้นเราได้ใช้ ตัวดำเนินการ ++ และ — เป็นคำนำหน้า (++a และ –b) ค่า a จาก 10 จึงเป็น 11 และ ค่า b จาก 100 จึงเหลือ 99

2. ตัวดำเนินการกำหนดค่า C++ (Assignment Operators)


ใน C ++ ตัวดำเนินการ Assignment ใช้เพื่อกำหนดค่าให้กับตัวแปร ตัวอย่างเช่น,

// assign 5 to a
a = 5;


ที่นี่เราได้กำหนดค่าของตัวแปร a เป็น 5


โอเปอเรเตอร์ตัวอย่างเทียบเท่ากับ
=a = b;a = b;
+=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;


ตัวอย่างที่ 3: ตัวดำเนินการกำหนดค่า


#include <iostream>
using namespace std;

int main() {
    int a, b;

    // 2 is assigned to a
    a = 2;

    // 7 is assigned to b
    b = 7;

    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "\nAfter a += b;" << endl;

    // assigning the sum of a and b to a
    a += b;  // a = a +b
    cout << "a = " << a << endl;

    return 0;
}


เอาท์พุต


3. ตัวดำเนินการแบบสัมพันธ์ C++ (Relational Operators)


ใช้ตัวดำเนินการเชิงสัมพันธ์ เพื่อตรวจสอบความสัมพันธ์ระหว่างตัวถูกดำเนินการ 2 ตัว ตัวอย่างเช่น,

// ตรวจสอบว่า a มากกว่า b  หรือไม่?
a > b;


นี่ > คือตัวดำเนินการเชิงสัมพันธ์ มันตรวจสอบว่า a มีค่ามากกว่า b หรือไม่.

ถ้าความสัมพันธ์เป็นจริงก็จะส่งกลับเป็น 1 ในขณะที่ถ้าความสัมพันธ์เป็นเท็จก็จะส่งกลับเป็น 0

ตัวดำเนินการความหมายตัวอย่าง
==เท่ากับ3 == 5 เป็นเท็จ
!=ไม่เท่ากับ3 != 5 เป็นจริง
>มากกว่า3 > 5 เป็นเท็จ
<น้อยกว่า3 < 5 เป็นจริง
>=มากกว่าหรือเท่ากับ3 >= 5 เป็นเท็จ
<=น้อยกว่าหรือเท่ากับ3 <= 5 เป็นจริง

#include <iostream>
using namespace std;

int main() {
    int a, b;
    a = 3;
    b = 5;
    bool result;

    result = (a == b);   // false
    cout << "3 == 5 is " << result << endl;

    result = (a != b);  // true
    cout << "3 != 5 is " << result << endl;

    result = a > b;   // false
    cout << "3 > 5 is " << result << endl;

    result = a < b;   // true
    cout << "3 < 5 is " << result << endl;

    result = a >= b;  // false
    cout << "3 >= 5 is " << result << endl;

    result = a <= b;  // true
    cout << "3 <= 5 is " << result << endl;

    return 0;
}


เอาท์พุต

หมายเหตุ : ตัวดำเนินการเชิงสัมพันธ์ใช้ในการตัดสินใจและวนซ้ำ


4. ตัวดำเนินการตรรกะ C ++ (Logical Operators)


นิพจน์ (Expression) คือ กลุ่มของข้อมูลซึ่งอาจจะอยู่ในรูปของค่าคงที่หรือตัวแปรมาดำเนินการโดยใช้เครื่องหมายต่าง ๆ ตัวดำเนินการทางตรรกะที่ใช้ในการตรวจสอบว่าการแสดงออกเป็นจริงหรือเท็จ หากการแสดงออกเป็นจริงก็จะส่งกลับเป็น 1 (true) ในขณะที่ถ้าการแสดงออกเป็นเท็จก็จะส่งกลับเป็น 0 (false)

ตัวดำเนินการ ตัวอย่างความหมาย
&&นิพจน์1 && นิพจน์2Logical AND.
ถ้านิพจน์ทั้งสองจริง ก็จะให้ค่าความจริงเป็น จริง
||นิพจน์1 || นิพจน์2 Logical OR.
ถ้ามีนิพจน์ตัวใดตัวหนึ่งจริง ก็จะให้ค่าความจริงเป็น จริง
!! นิพจน์ Logical NOT.
เป็นการสลับค่าทางตรรกะของนิพจน์ จากจริงเป็นเท็จหรือเท็จเป็นจริง

ใน C ++ ตัวดำเนินการเชิงตรรกะมักใช้ในการตัดสินใจ เพื่อให้เข้าใจถึงตัวดำเนินการเชิงตรรกะเพิ่มเติม มาดูตัวอย่างต่อไปนี้

Suppose,
a = 5
b = 8

Then,

(a > 3) && (b > 5) evaluates to true
(a > 3)  && (b < 5) evaluates to false

(a > 3) || (b > 5) evaluates to true
(a > 3) || (b < 5) evaluates to true
(a < 3) || (b < 5) evaluates to false

!(a < 3) evaluates to true
!(a > 3) evaluates to false



ตัวอย่างที่ 5: ตัวดำเนินการเชิงตรรกะ


#include <iostream>
using namespace std;

int main() {
    bool result;

    result = (3 != 5) && (3 < 5);     // true
    cout << "(3 != 5) && (3 < 5) is " << result << endl;

    result = (3 == 5) && (3 < 5);    // false
    cout << "(3 == 5) && (3 < 5) is " << result << endl;

    result = (3 == 5) && (3 > 5);    // false
    cout << "(3 == 5) && (3 > 5) is " << result << endl;

    result = (3 != 5) || (3 < 5);    // true
    cout << "(3 != 5) || (3 < 5) is " << result << endl;

    result = (3 != 5) || (3 > 5);    // true
    cout << "(3 != 5) || (3 > 5) is " << result << endl;

    result = (3 == 5) || (3 > 5);    // false
    cout << "(3 == 5) || (3 > 5) is " << result << endl;

    result = !(5 == 2);    // true
    cout << "!(5 == 2) is " << result << endl;

    result = !(5 == 5);    // false
    cout << "!(5 == 5) is " << result << endl;

    return 0;
}


เอาท์พุต

คำอธิบายของโปรแกรมตัวดำเนินการเชิงตรรกะ

  • (3 != 5) && (3 < 5) ประเมินเป็น 1 เพราะทั้งตัวถูกดำเนินการ (3 != 5) และ (3 < 5) เป็น1 (จริง)
  • (3 == 5) && (3 < 5) ประเมินเป็น 0 เนื่องจากตัวถูกดำเนินการ (3 == 5) เป็น 0 (เท็จ)
  • (3 == 5) && (3 > 5) ประเมินเป็น 0 เพราะทั้งตัวถูกดำเนินการ (3 == 5) และ (3 > 5) เป็น 0 (เท็จ)
  • (3 != 5) || (3 < 5) ประเมินเป็น 1 เพราะทั้งตัวถูกดำเนินการ (3 != 5) และ (3 < 5) เป็น1 (จริง)
  • (3 != 5) || (3 > 5) ประเมินเป็น 1 เนื่องจากตัวถูกดำเนินการ (3 != 5) เป็น1 (จริง)
  • (3 == 5) || (3 > 5) ประเมินเป็น 0 เพราะทั้งตัวถูกดำเนินการ (3 == 5) และ (3 > 5) เป็น 0 (เท็จ)
  • !(5 == 2) ประเมินเป็น 1 เนื่องจากตัวถูกดำเนินการ (5 == 2) เป็น 0 (เท็จ)
  • !(5 == 5) ประเมินเป็น 0 เนื่องจากตัวถูกดำเนินการ (5 == 5) คือ 1 (จริง)


5. ตัวดำเนินการระดับบิต (Bitwise Operators)


ใน C ++ ตัวดำเนินการระดับบิตถูกใช้เพื่อดำเนินการกับแต่ละบิต พวกเขาเท่านั้นที่สามารถใช้ควบคู่กับชนิดข้อมูล char และ int

OperatorDescription
&Binary AND
|Binary OR
^Binary XOR
~Binary One’s Complement
<<Binary Shift Left
>>Binary Shift Right


6. ตัวดำเนินการ C++ อื่นๆ (Other Operators)


ต่อไปนี้คือรายการตัวดำเนินการทั่วไปอื่นๆ ที่มีอยู่ใน C++ เราจะเรียนรู้เกี่ยวกับพวกเขาในบทช่วยสอนในภายหลัง

ตัวดำเนินการ คำอธิบายตัวอย่าง
sizeofส่งกลับขนาดของชนิดข้อมูลsizeof(int); // 4
?:ส่งคืนค่าตามเงื่อนไขstring result = (5 > 0) ? "even" : "odd"; // "even"
&หมายถึงที่อยู่หน่วยความจำของตัวถูกดำเนินการ&num; // address of num
.เข้าถึงสมาชิกของตัวแปร struct หรือคลาสอ็อบเจกต์s1.marks = 92;
->ใช้กับพอยน์เตอร์เพื่อเข้าถึงคลาสหรือตัวแปรโครงสร้างptr->marks = 92;
<<พิมพ์ค่าเอาต์พุตcout << 5;
>>รับค่าอินพุตcin >> num;

Leave a Reply

Your email address will not be published. Required fields are marked *