นิพจน์และตัวดำเนินการ
นิพจน์ (Expression)
นิพจน์ในที่นี้หมายถึง นิพจน์ทางคณิตศาสตร์
ซึ่งสามารถพบเห็นได้จากสูตรการคำนวณตัวเลขต่างๆ ดังนั้นนิพจน์จึงประกอบด้วย ตัวแปร
ค่าคงที่ และตัวดำเนินการทางคณิตศาสตร์ มาประกอบรวมกัน
ตัวอย่างเช่น ans = 100-50
Score = midterm +
final + quiz
Income = salary + (ot*RATE) + bonus –tax
สูตรคำนวณที่มีความซับซ้อน
ต้องระมัดระวังในการจัดอันดับนิพจน์ ตัวดำเนินการต่างๆที่นำมาคำนวณนั้น
แต่ละตัวจะมีความสำคัญที่แตกต่างกัน เช่น เมื่อพบเครื่องหมาย + และ * การประมวลผลจะกระทำที่ตัวดำเนินการ
* ก่อน เพราะ * จะมีลำดับความสำคัญสูงกว่า
+ นั้นเอง ตัวอย่างเช่น
result = 5+2*4 คำตอบคือ 13 มิใช่
28 แต่อย่างใด
ตัวดำเนินการ (Operators)
ตัวดำเนินการพื้นฐานที่สำคัญ มีดังนี้
1. ตัวดำเนินการทางคณิตศาสตร์
2. ตัวดำเนินการยูนารี
3. ตัวดำเนินการเปรียบเทียบ 4. ตัวดำเนินการตรรกะ
5. ตัวดำเนินการกำหนดค่าแบบผสม
6. ตัวดำเนินการเงื่อนไข
1. ตัวดำเนินการทางคณิตศาสตร์
จัดเป็นตัวดำเนินการพื้นฐาน
ที่นำมาใช้เพื่อการคำนวณ เช่น บวก ลบ คูณ หาร และโมดูลัส (หารเอาเศษ)
โดยสัญลักษณ์ของตัวดำเนินการดังกล่าว เป็นดังนี้ + , - , *
, / ,
%
กำหนดให้ a และ b เป็นตัวแปรชนิดเลขจำนวนเต็ม
(int) โดยที่ a = 10 และ b = 2 ดังนั้น
a+b = 12 , a-b-3 = 5 ,
a*b = 20 , a/b = 5
, a%b = 0
2. ตัวดำเนินการยูนารี ตัวแรกที่จะกล่าวถึงคือ เครื่องหมายลบที่นำหน้าค่าตัวเลข
หรือนำหน้าค่าตัวแปร ซึ่งจะส่งผลให้ค่าถูกเปลี่ยนเป็นค่าติดลบโดยทันที่ เช่น -10 , -x เป็นต้น
อย่างไรก็ตามเครื่องหมายยูนารีลบดังกล่าว มิใช่ตัวดำเนินการลบแต่อย่างใด
กำหนดให้ a และ b เป็นตัวแปรชนิดเลขจำนวนเต็ม
(int) โดยที่ a = 10 และ b = 2 ดังนั้น
a+b =12 , -a+b =-8
, -a*b = -20 ,
a- -b = 12
สำหรับตัวดำเนินการยูนารีตัวถัดไปที่จะกล่าวก็คือ
ตัวดำเนินการเพิ่มค่า และตัวดำเนินการลดค่า ด้วยการใช้เครื่องหมาย – เพื่อลดลงทีละหนึ่ง และเครื่องหมาย ++ เพื่อเพิ่มค่าทีละหนึ่ง โดยเขียนนำหน้าตัวแปร (prefix) หรือหลังตัวแปร (postfix) ก็ได้ เช่น ++a หรือ –a
a++ หรือ ++a ซึ่งมีความหมายเดียวกันกับนิพจน์ a = a+1 และ b++ หรือ --b
ซึ่งมีความหมายเดียวกันกับนิพจน์ b = b-1
3. ตัวดำเนินการเปรียบเทียบ ได้แก่ < , <= , > , >= , == , !=
สำหรับผลลัพธ์จากการเปรียบเทียบ จะได้ค่า 1
กรณีเงื่อนไขเปรียบเทียบเป็นจริง (True) จะได้ค่า 0 กรณีเงื่อนไขเปรียบเทียบเป็นเท็จ (False)
ตัวอย่างเช่น 100 > 8 = 1 ,
-5 > 5 = 0
, 9.0 >
9.01 = 0 ,
9.0 < 9.01 = 1
4. ตัวดำเนินการตรรกะ นอกจากตัวดำเนินการเปรียบเทียบแล้วเรายังสามารถนำตัวดำเนินการตรรกะมาใช้ร่วมกันได้
ได้แก่ && , || ,
! (และ , หรือ , ไม่ใช่)
ตัวอย่างเช่น 80 >= 80
&& 80 < 90 = 1 ,
80!=80 || 80 >50 = 1 , !(80==80) = 0
5. ตัวดำเนินการกำหนดค่าแบบผสม
ประกอบด้วย += , -= , *= , /= , %=
นิพจน์ที่เขียนแบบทั่วไป
|
นิพจน์ที่ใช้ตัวดำเนินการ
กำหนดค่าแบบผสม
|
i=i+5
|
i+=5
|
f = f -g
|
f-=g
|
j=j*(i-3)
|
j*=(i-3)
|
f=f/3
|
f/=3
|
i=i%(j-2)
|
i%=(j-2)
|
6. ตัวดำเนินการเงื่อนไข นำมาใช้เพื่อทดสอบค่านิพจน์ทางตรรกะ ว่าจริงหรือเท็จ
โดยมีรูปแบบดังนี้
expression1 ? expression2
: expression3
โดยที่ expression1
หมายถึง นิพจน์เงื่อนไข expression2
หมายถึง นิพจน์กรณีเป็นจริง
expression3 หมายถึง นิพจน์กรณีเป็นเท็จ
ตัวอย่างเช่น result =
(x<y) ? 0 : 100 ;
หมายความว่า ถ้า x มีค่าน้อยกว่า y
กรณีเป็นจริง ตัวแปร result จะถูกกำหนดค่าให้เป็น 0 กรณีเป็นเท็จ
ตัวแปร result จะถูกกำหนดค่าให้เป็น 100
ตัวดำเนินการกับลำดับความสำคัญ
ลำดับความสำคัญ
|
ตัวดำเนินการ
|
ความหมาย
|
1
|
( )
|
เครื่องหมายวงเล็บ
|
2
|
++ , --
|
ตัวดำเนินการเพิ่มค่า/ลดค่า
|
3
|
-,!
|
ยูนารีลบ และ ตรรกะ NOT
|
4
|
*,/,%
|
คูณ หาร โมดูลัส
|
5
|
+,-
|
บวก ลบ
|
ตัวอย่างเช่น ans = 2*3/4+4/4+8-2+5/8 = ?
คำตอบคือ 8 (งงไหมคิดยังไง ลองคิดดีๆ ตัวดำเนินการไหนสำคัญกว่าทำอันนั้นก่อน)
สรุป ทุกๆอย่างที่เอามาเขียนในโปรแกรมจะต้องทำให้อยู่ในรูปนิพจน์ แล้วมีค่าความจริงของมัน โดยมีตัวดำเนินการต่างๆช่วยจัดการ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น