ตัวดำเนินการ

ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและค่าคงที่ ในภาษา C++ มีตัวดำเนินการประเภทต่างๆ นี่เป็นตัวดำเนินการที่สำคัญที่คุณจะต้องรู้จัก

Assignment operator

ตัวดำเนินการกำหนดค่านั้นแสดงโดยใช้เครื่องหมาย = มันถูกใช้เพื่อกำหนดค่าข้อมูลให้กับตัวแปร

x = 10;
y = x;

ในตัวอย่าง เรามีตัวแปรสองตัวคือ x และ y เราได้กำหนดค่า 10 ให้กับตัวแปร x และเรากำหนดค่าของ x ให้กับตัวแปร y ดังนั้นทั้งตัวแปร x และ y จะมีค่าเป็น 10

Arithmetic operators ( +, -, *, /, % )

ตัวดำเนินการคณิตศาตร์ ถูกใช้เพื่อดำเนินการเกี่ยวกับทางคณิตระหว่างตัวแปรและค่าคงที่

ต่อไปนี้เป็นตารางแสดงตัวดำเนินการทางคณิตศาสตร์ในภาษา C++

SymbolNameExample
+Additionc = a + b
-Subtractionc = a - b
*Multiplicationc = a * b
/Divisionc = a / b
%Moduloc = a % b

ต่อไป มาดูตัวอย่างเกี่ยวกับการใช้ตัวดำเนินการทางคณิตศาสตร์

#include <iostream>

using namespace std;

int main () {
int a = 3;
int b = 2;
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl;
cout << "a % b = " << a % b << endl;
}

เมื่อโปรแกรมรัน มันจะให้ผลลัพธ์ดังต่อไปนี้

a + b = 5
a - b = 1
a * b = 6
a / b = 1
a % b = 1

Compound assignment (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

Compound assignment operators ถูกใช้เพื่อแก้ไขค่าปัจจุบันของตัวแปรโดยการใช้ตัวดำเนินการทางคณิตศาตร์และตัวดำเนินการกำหนดค่าในเวลาเดียวกัน

ต่อไปนี้เป็นตารางของตัวดำเนินการกำหนดเพิ่มค่า

OperatorExampleEquivalent to
+=a += 2;a = a + 2
-=a -= 2;a = a - 2
*=a *= 2;a = a * 2
/=a /= 2;a= a / 2
%=a %= 2;a = a % 2
>>=a >>= 2;a = a >> 2
<<=a <<= 2a = a << 2
&=a & = 2;a = a & 2
^=a ^= 2;a= a ^ 2
|=a |= 2;a = a | 2

Increment และ decrement (++, --)

ตัวดำเนินการ Increment และ decrement operators ถูกใช้เพื่อเพิ่มหรือลดค่าของตัวแปร ตัวดำเนินการดำเนินการกับตัวแปรโดยการเพิ่ม ++ หรือ -- หลังจากตัวแปร นี่เป็นตัวอย่าง

#include <iostream>

using namespace std;

int main () {
int x = 1;
int y = 5;
x++;
++x;
y--;
cout << " x = " << x;
cout << " y = " << y;
}

โปรแกรมจะมีผลลัพธ์ตามนี้

x = 3
y = 4

ตัวดำเนินการนี้เป็นรูปย่อของ x = x + 1 เหมือนที่คุณได้เห็นในโปรแกรม อย่างไรก็ตามมันมีข้อแตกต่างระหว่าง prefix และ postfix increments โดย x++ จะต้องเสร็จสิ้นคำสั่งปัจจุบันก่อนที่จะเพิ่มค่า 1 ไปยังตัวแปร x แต่ ++x จะเพิ่มค่า 1 ไปยังตัวแปร x ก่อนที่คำสั่งจะทำงาน

Relational และ comparison operators ( ==, !=, >, <, >=, <= )

ตัวดำเนินการเปรียบเทียบถูกใช้ในการดำเนินการเปรียบเทียบระหว่างตัวแปร ผลลัพธ์ของตัวดำเนินการเหล่านี้จะมีแค่ true และ false อีกนัยหนึ่ง มันเป็นการเขียนโปรแกรมแบบมีเงื่อนไข ที่ใช้ในคำสั่งที่มีการเปรียบเทียบ เช่น if, for, while, do while เป็นต้น

Relational and comparison operators table

OperaterExampleResult
==a == btrue if a equal to b, otherwise false
!=a != btrue if a not equal to b, otherwise false
<a < btrue if a less than b, otherwise false
>a > btrue if a greater than b, otherwise false
<=a <= btrue if a less than or equal to b, otherwise false
>=a >= btrue if a greater than or equal to b, otherwise false

มาดูตัวอย่าง

if (n == 5) {
cout << "n equal to 5";
}

นี่เรียกว่าคำสั่งเปรียบเทียบเงื่อนไข ในตัวอย่าง เราใช้ตัวดำเนินการ ==เพื่อตรวจสอบว่าตัวแปร n เท่ากับ 5 หรือไม่ ถ้ามันเท่ากับ 5 เราจะแสดงผล n equal to 5 ออกทางหน้าจอ

Logical operators ( !, &&, || )

ตัวดำเนินการตรรกะ ใช้เพื่อประเมิน expression ของตัวแปรซึ่ง expression สามารถประกอบไปด้วยตัวแปรเดียวหรือมากกว่า นี่เป็นตารางของตัวดำเนินการตรรกะ

SymbolNameExample
!Not! (n==1)
&&Anda == 1 && b == 1
||Ora == 1 || b == 1

ดำเนินการตรรกะมักจะใช้เพื่อเปรียบเทียบและสร้างเงื่อนไข ผลลัพธ์สุดท้ายนั้นจะเป็น true หรือ false เท่านั้น มาดูตัวอย่าง

bool isRain = true;
if (!isRain) {
cout << "I will go to beach" ;
}

เรามีตัวแปร isRain ซึ่งเป็นตัวแปรที่ใช้บ่งบอกว่าฝนตกหรือไม่ ในคำสั่ง if (!isRain) มีความหมายคือ "if it not rain" เราจะแสดงผลข้อความ "I will go to beach" ออกทางจอภาพ

char c = 'a';
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
cout << "c is a vowel" ;
}

ในตัวอย่าง เรามีตัวแปร c ซึ่งสามารถเก็บค่าของตัวอักษรภาษาอังกฤษทุกตัวได้ และเราใช้ "or operator" เพื่อเช้คว่าถ้า c เป็นสระใดๆ เราจะแสดงผลออกทางจอภาพว่า "c is vowel" อย่างไรก็ตามคุณสามารถลองใช้ "and operator" ได้ด้วยตัวเอง

Conditional ternary operator ( ? )

Conditional ternary operator ถูกใช้เพื่อประเมิน expression โดยการใช้ตัวดำเนินการที่คุณได้เรียนไปก่อนหน้านี้แล้ว มันจะให้ผลลัพธ์เป็น true ถ้าผลลัพธ์ของ expression เป็นจริงและจะใช้ค่า false ถ้าไม่ โดยมีรูปแบบการใช้งานดังนี้

condition ? value1: value2

Conditional ternary operator นั้นง่ายต่อการใช้ มันเป็นรูปแบบย่อของการใช้คำสั่ง if เช่น

if (n%2 == 0) {
cout << "n is even number.";
} else {
cout << "n is odd number.";
}

// now using conditional ternary operator
cout << "n is " << (n % 2 == 0 ? "even" : "odd") << " number.";

Bitwise operators ( &, |, ^, ~, <<, >> )

Bitwise operators จะดำเนินการกับในรูปแบบของหนึ่งบิตหรือมากกว่า หรือในตัวเลขฐานสอง

SymbolDescription
&Bitwise AND
|Bitwise inclusive OR
^Bitwise exclusive OR
~bit inversion
<<Shift bits left
>>Shift bits right

Explicit type casting operator

ในภาษา C++ นั้นจะมีข้อมูลประเภทต่างๆ ข้อมูลบางประภทสามารถแปลงไปอีกประเภทได้โดยการใช้ explicit type casting ข้อมูลบางประเภทจำเป็นต้องใช้ฟังก์ชันจากไลบรารี่ของภาษา C++ หรือคุณสามารถสร้างฟังก์ชันของคุณเองเพื่อแปลงข้อมูลเหล่านั้น ในตัวอย่างนี้เราจะใช้การแปลงข้อมูลแบบ explicit type casting เพื่อแปลงค่าข้อมูลพื้นฐานเช่น integer และ float

float b = 10.25;
int a = (int) b;

ในตัวอย่างนี้ เราได้แปลง 10.25 ไปเป็น integer ดังนั้นตัวแปร a จะมีค่าเป็น 10


บทความเกี่ยวกับ ตัวดำเนินการ

ตัวดำเนินการ ในภาษา C

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

ตัวดำเนินการ ในภาษา C#

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

ตัวดำเนินการ ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา Java และการใช้งานตัวดำเนินการ ในภาษา Java มีตัวดำเนินการประเภทต่างๆ ดังนี้ String concatenating operator หรื...

ตัวดำเนินการ ในภาษา Visual Basic

ตัวดำเนินการ ใช้สำหรับจัดการกับตัวแปรและค่าคงที่ ยกตัวอย่างเช่น การกำหนดค่า การเปรียบเทียบข้อมูล ตัวดำเนินการในภาษา Visual Basic นั้นมีหลายรูปแบบ นี่เป็นตัวดำเน...

ตัวดำเนินการ ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา PHP เราจะให้คุณรู้จักตัวดำเนินการแต่ละประเภทและวิธีการใช้งานกับการเขียนโปรแกรมในรูปแบบต่างๆตัวดำเนินการ คือเ...