ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและค่าคงที่ ในภาษา 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
ไม่มีความคิดเห็น:
แสดงความคิดเห็น