นิพจน์ (Expression) คือ การนำค่าคงที่หรือตัวแปรมาเชื่อมต่อกัน ด้วยเครื่องหมายทางคณิตศาสตร์ เช่น
c = a * b
|
(10 + 5 ) * 10 % 9 = 15
|
(8 * a + 2 * b)/c
|
5 + (5 – 1 ) * 4 = 21
|
ตัวดำเนินการ (Operator) ในโปรแกรมภาษาซีมีตัวดำเนินการหลายชนิดเพื่อใช้ในการเขียนโปรแกรม ดังนี้
1.ตัวดำเนินการคณิตศาสตร์
2.ตัวดำเนินการยูนารี
3.ตัวดำเนินการเปรียบเทียบ
4.ตัวดำเนินการตรรกะ
5.ตัวดำเนินการกำหนดค่าแบบผสม
6.ตัวดำเนินการเงื่อนไข
1. ตัวดำเนินการคณิตศาสตร์ เช่น บวก ลบ คูณ หาร เปอร์เซ็นต์ ดังตัวอย่างในตารางข้างล่างนี้
ตัวดำเนินการ
|
ความหมาย
|
ตัวอย่าง
|
+
|
บวก (Addition)
|
X + y
|
-
|
ลบ (Subtraction)
|
X – y
|
*
|
คูณ (Multiplication)
|
X * y
|
/
|
หาร (Division)
|
X / y
|
%
|
หารเอาผลลัพธ์เฉพาะเศษ (Modulus)
|
X % y
|
ตัวอย่าง กำหนดให้ x และ y เป็นตัวแปรชนิดเลขจำนวนเต็ม (int) โดยที่ x = 10 , y = 2
นิพจน์
|
ผลลัพธ์
|
X + y
|
12
|
X – y
|
8
|
X * y
|
20
|
X / y
|
5
|
X % y
|
0
|
2. ตัวดำเนินการยูนารี
การใช้เครื่องหมายลบนำหน้าค่าตัวแปร จะทำให้ค่าถูกเปลี่ยนเป็นค่าติดลบโดยทันที
เช่น -10 , -x (มิใช่ตัวดำเนินการลบแต่อย่างใด)
ตัวอย่าง ให้ a และ b เป็นตัวแปรชนิดเลขจำนวเต็ม (int) โดยที่ a = 10 และ b = 2 ดังนั้น
นิพจน์
|
ผลลัพธ์
|
a + b
|
12
|
-a + b
|
-8
|
-a * b
|
-20
|
a - - b
|
12
|
· ตัวดำเนินการเพิ่มค่าและตัวดำเนินการลบค่า จะใช้เครื่องหมาย - - เพื่อลดค่าทีละหนึ่ง
และเครื่องหมาย + + เพื่อเพิ่มค่าทีละหนึ่ง โดยเขียนนำหน้าค่าตัวแปรหรือหลังตัวแปรก็ได้
การเพิ่มค่าทีละหนึ่ง (Increment)
ใช้ a++ หรือ ++a ก็มีความหมายเดียวกันกับนิพจน์ a = a + 1
การลดค่าทีละหนึ่ง (Decrement)
ใช้ b-- หรือ --b ก็มีความหมายเดียวกันกับนิพจน์ a = b – 1
ตารางแสดงตัวดำเนินการยูนารีแบบเพิ่มค่าและลดค่าทีละหนึ่ง
นิพจน์
|
ความหมาย
|
++a
|
เพิ่มค่าอีกหนึ่งให้กับ a ก่อน แล้วจึงนำค่าใหม่ของ a ไปใช้งาน
|
a++
|
นำค่าเดิมของ a ไปใช้งานก่อน แล้วจึงเพิ่มค่า a อีกหนึ่ง
|
--a
|
ลดค่าลงหนึ่งให้กับ a ก่อน แล้วจึงนำค่าใหม่ของ a ไปใช้งาน
|
a--
|
นำค่าเดิมของ a ไปใช้งานก่อน แล้วจึงลดค่า a ลงอีกหนึ่ง
|
3. ตัวดำเนินการเปรียบเทียบ คือ เครื่องหมายที่ใช้ในการเปรียบเทียบในทางคณิตศาสตร์
ผลลัพธ์จะมี 2 กรณีคือ ถ้าผลลัพธ์ถูกต้องหรือเป็นจริง (True) จะมีค่าเป็น 1 ถ้าผลลัพธ์ผิดหรือเป็นเท็จ (False) จะมีค่าเป็น 0 ผลลัพธ์ของการเปรียบเทียบ เรียกว่า ค่าคงที่บูลีน (Boolean Constant)
ตัวดำเนินการ
|
ความหมาย
|
ตัวอย่าง
|
>
|
มากกว่า (Greather Than)
|
X > y
|
<
|
น้อยกว่า (Less Than)
|
X < y
|
>=
|
มากกว่าหรือเท่ากับ (Greather Than or Equal)
|
X >= y
|
<=
|
น้อยกว่าหรือเท่ากับ (Less Than or Equal)
|
X <= y
|
==
|
เท่ากับ (Equal)
|
X == y
|
!=
|
ไม่เท่ากับ (Not Equal)
|
X != y
|
4. ตัวดำเนินการตรรกะ คือเครื่องหมายที่ใช้เชื่อมเงื่อนไข 2 เงื่อนไข หรือมากกว่า 2 เงื่อนไข
เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น ใช้สัญลักษณ์แทนในแต่ละเครื่องหมาย ดังนี้
ตัวดำเนินการ
|
อธิบาย
|
ความหมาย
|
&&
|
และ (and)
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขทั้งสองเป็นจริง แต่ถ้าเงื่อนไขใดเป็นเท็จ หรือทั้งสองเงื่อนไขเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จ
|
||
|
หรือ (or)
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง หรือเป็นจริงทั้งสองเงื่อนไข แต่ถ้าเป็นเท็จทั้งสองเงื่อนไขจะทำให้ผลลัพธ์เป็นเท็จ
|
!
|
ไม่ใช่ (not)
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขหลัง not เป็นเท็จ แต่ถ้าเงื่อนไขหลัง not เป็นจริงจะทำให้ผลลัพธ์เป็นเท็จ ตัวดำเนินการ ความหมาย
|
โดยผลลัพธ์จะเป็นไปตามตารางค่าความจริง ดังนี้ (T = True , F = False)
ตัวเปรียบเทียบ
|
ผลลัพธ์
|
a
|
b
|
a && b
|
a || b
|
!a
|
!b
|
T
|
T
|
T
|
T
|
F
|
F
|
T
|
F
|
F
|
T
|
F
|
T
|
F
|
T
|
F
|
T
|
T
|
F
|
F
|
F
|
F
|
F
|
T
|
T
|
5. ตัวดำเนินการกำหนดค่าแบบผสม จะประกอบด้วย + = , - = , * = , / = และ % =
โดยสามารถแสดงได้ดังนี้
นิพจน์ทั่วไป
|
นิพจน์แบบผสม
|
a = a + 5
|
a + = 5
|
a = a - b
|
a - = 5
|
a = a * (b - 3)
|
a * = (b – 3)
|
a = a / 3
|
a / = -
|
a = a % (b – 2)
|
a % = (b - 2)
|
6. ตัวดำเนินการเงื่อนไข จะนำไปใช้ในการทดสอบค่านิพจน์ทางตรรกะว่า จริงหรือเท็จ ดังนี้
รูปแบ expression1 ? expression2 : expression3
|
โดยที่ expression 1 หมายถึง นิพจน์เงื่อนไข
expression 2 หมายถึง นิพจน์กรณีเป็นจริง
expression 3 หมายถึง นิพจน์กรณีเป็นเท็จ
ตัวอย่าง
result = (x < y) ? 0 : 100 ; หรือ if (x < y)
result = 0 ;
else
result = 100 ;
|
หมายความว่า ถ้า x
มีค่าน้อยกว่า y
แล้ว
กรณีเป็นจริง ตัวแปร result
จะถูกกำหนดค่าเป็น 0 กรณีเป็นเท็จ ตัวแปร result
จะถูกกำหนดค่าเป็น 100
ตัวดำเนินการกับลำดับความสำคัญ ลำดับการประมวลผลของนิพจน์ จะทำการประมวลผล ในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผลเดียวกันจะทำการคำนวณจากด้าน ซ้ายไปด้านขวา
ลำดับ
|
ตัวดำเนินการ
|
ความหมาย
|
1
|
( )
|
เครื่องหมายวงเล็บ
|
2
|
++ , --
|
ตัวดำเนินการเพิ่มค่า , ลดค่า
|
3
|
-, !
|
ยูนารีลบ , ตรรกะ NOT
|
4
|
* , / , %
|
คูณ หาร โมดูลัส
|
5
|
+ , -
|
บวก ลบ
|
ตัวอย่างนิพจน์การคำนวณ
ตัวอย่าง 1 (10 -34) * 5 = 35
|
ลำดับการประมวลผล 10 - 3 = 7 แล้วคูณกับ 5 ได้ผลลัพธ์ 35
|
ตัวอย่าง 2 5 + 10 *2 = 25
|
ลำดับการประมวลผล 10 * 2 = 20 แล้วบวกดับ 5 ได้ผลลัพธ์ 25
|
ตัวอย่าง 3 (2 + 7) * 4 % 10 = 6
| ลำดับการประมวลผล 2 + 7 = 9 แล้วคูณกับ 4 ได้ 36 หารแบบเอาเศษด้วย 10 ได้ 6 |
ตัวอย่าง 4 2 + 7 * 4 % 10 = 10
|
ลำดับการประมวลผล 7 * 4 = 28 แล้วหารแบบเอาเศษด้วย 10 ได้ 8 บวกกับ 2 เป็น 10
|
ตัวอย่าง 5 10 + 2 * 8 / 4 * 3 – 5 = 17
|
ลำดับการประมวลผล 1. 2 * 8 = 16 2. 16 / 4 = 4 3. 4 * 3 = 12 4. 12 + 10 = 22 5. 22 – 5 = 17
|
|