ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและค่าคงที่ ในภาษา C++
มีตัวดำเนินการประเภทต่างๆ นี่เป็นตัวดำเนินการที่สำคัญที่คุณจะต้องรู้จัก
Assignment operator
ตัวดำเนินการกำหนดค่านั้นแสดงโดยใช้เครื่องหมาย
= มันถูกใช้เพื่อกำหนดค่าข้อมูลให้กับตัวแปร
x = 10;
y = x;
ในตัวอย่าง เรามีตัวแปรสองตัวคือ
x และ
y เราได้กำหนดค่า 10 ให้กับตัวแปร x และเรากำหนดค่าของ x ให้กับตัวแปร y ดังนั้นทั้งตัวแปร x และ y จะมีค่าเป็น 10
Arithmetic operators ( +, -, *, /, % )
ตัวดำเนินการคณิตศาตร์ ถูกใช้เพื่อดำเนินการเกี่ยวกับทางคณิตระหว่างตัวแปรและค่าคงที่
ต่อไปนี้เป็นตารางแสดงตัวดำเนินการทางคณิตศาสตร์ในภาษา C++
| Symbol | Name | Example |
| + | Addition | c = a + b |
| - | Subtraction | c = a - b |
| * | Multiplication | c = a * b |
| / | Division | c = a / b |
| % | Modulo | c = 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
ถูกใช้เพื่อแก้ไขค่าปัจจุบันของตัวแปรโดยการใช้ตัวดำเนินการทางคณิตศาตร์และ
ตัวดำเนินการกำหนดค่าในเวลาเดียวกัน
ต่อไปนี้เป็นตารางของตัวดำเนินการกำหนดเพิ่มค่า
| Operator | Example | Equivalent 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 <<= 2 | a = 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
| Operater | Example | Result |
| == | a == b | true if a equal to b, otherwise false |
| != | a != b | true if a not equal to b, otherwise false |
| < | a < b | true if a less than b, otherwise false |
| > | a > b | true if a greater than b, otherwise false |
| <= | a <= b | true if a less than or equal to b, otherwise false |
| >= | a >= b | true 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
สามารถประกอบไปด้วยตัวแปรเดียวหรือมากกว่า
นี่เป็นตารางของตัวดำเนินการตรรกะ
| Symbol | Name | Example |
| ! | Not | ! (n==1) |
| && | And | a == 1 && b == 1 |
| || | Or | a == 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 จะดำเนินการกับในรูปแบบของหนึ่งบิตหรือมากกว่า หรือในตัวเลขฐานสอง
| Symbol | Description |
| & | 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
ไม่มีความคิดเห็น:
แสดงความคิดเห็น