วันอังคารที่ 16 สิงหาคม พ.ศ. 2559

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

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...