สรุปบทที่ 4
นิพจน์และตัวดำเนินการ
นิพจน์และตัวดำเนินการ
นิพจน์ประกอบด้วย ตัวแปร ค่าคงที่ และตัว
ดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน
ตัวดำเนินการพื้นฐานในภาษาซี ประกอบด้วย
1.
ตัวดำเนินการคณิตศาสตร์
2. ตัวดำเนินการยูนารี
3.
ตัวดำเนินการเปรียบเทียบ
4.
ตัวดำเนินการตรรกะ
5.
ตัวดำเนินการกำหนดค่าแบบผสม
6.
ตัวดำเนินการเงื่อนไข
1. ตัวดำเนินการคณิตศาสตร์
การเพิ่มค่า (increment)/ลดค่า (decrement) ด้วยสัญลักษณ์ ++, พิจารณา code ต่อไปนี้
/*1*/ int a = 1;
/*2*/ b = ++a;
/*1*/ int a = 1;
/*2*/ b = ++a;
บรรทัดที่ 1 เป็นการประกาศตัวแปรชนิดจำนวนเต็มชื่อ a และกำหนดค่าเริ่มต้นให้เท่ากับ 1
บรรทัดที่ 2 เป็นการเพิ่มค่าตัวแปร a ขึ้น 1 ค่า แล้วจึง copy ค่าของตัวแปร a ไปให้ตัวแปร b
code ดังกล่าวมีรูปแบบเต็มดังนี้
/*1*/ int a = 1, b;
/*2*/ a = a+1;
/*3*/ b = a;
บรรทัดที่ 2 เป็นการเพิ่มค่าตัวแปร a ขึ้น 1 ค่า แล้วจึง copy ค่าของตัวแปร a ไปให้ตัวแปร b
code ดังกล่าวมีรูปแบบเต็มดังนี้
/*1*/ int a = 1, b;
/*2*/ a = a+1;
/*3*/ b = a;
หรือกล่าวได้ว่าเป็นการเพิ่มค่า
a ขึ้น 1
ค่า ก่อนที่จะกำหนดค่านั้นให้ตัวแปร b
นอกจากเราจะเพิ่มค่าตัวแปรโดยใช้ a++ ได้ด้วยโดยมีความหมายแตกต่างกันเล็กน้อย ดังนี้
/*1*/ int a = 1, b;
/*2*/ b = a;
/*3*/ a = a+1;
นอกจากเราจะเพิ่มค่าตัวแปรโดยใช้ a++ ได้ด้วยโดยมีความหมายแตกต่างกันเล็กน้อย ดังนี้
/*1*/ int a = 1, b;
/*2*/ b = a;
/*3*/ a = a+1;
หรือกล่าวได้ว่าเป็นการกำหนดค่าในตัวแปร
b ให้กับตัวแปร
a ก่อน แล้วค่อยเพิ่มค่าในตัวแปร a ขึ้น
1 ค่า
ในทำนองเดียวกัน เราสามารถลดค่าของตัวแปรใดๆ ด้วยเครื่องหมาย -- ได้เช่นกัน
การลดรูปคำสั่ง
พิจารณาตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a = a+b;
ในทำนองเดียวกัน เราสามารถลดค่าของตัวแปรใดๆ ด้วยเครื่องหมาย -- ได้เช่นกัน
การลดรูปคำสั่ง
พิจารณาตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a = a+b;
code ในบรรทัดที่
2 เป็นการบวกค่าของตัวแปร a กับตัวแปร b
แล้วคืนผลลัพธ์กลับไปเก็บไว้ในตัวแปร a (เท่ากับ
15)
ซึ่งสามารถลดรูปได้ดังนี้
/*1*/ int a = 5, b = 10;
/*2*/ a + =b;
ซึ่งสามารถลดรูปได้ดังนี้
/*1*/ int a = 5, b = 10;
/*2*/ a + =b;
ในทำนองเดียวกัน เราสามารถนำหลักการลดรูปนี้ไปใช้กับตัวดำเนินการ - (ลบ),
* (คูณ), / (หาร), % (มอด)
ได้
2. ตัวดำเนินการยูนารี
ตัวดำเนินการยูนารี
คือ ตัวดำเนินการที่นำมาใช้กับตัวถูกดำเนินการชนิดใดๆ ในการเพิ่มค่าใหม่ขึ้นมา
ชึ่งอาจจะเป็นตัวถูกดำเนินการแบบค่าคงที่
เลขจำนวนเต็ม เลขจำนวนจริง ตัวแปร และนิพจน์ได้
ตัวดำเนินการเพิ่มค่า ใช้เครื่องหมาย ++
ตัวดำเนินการลดค่า ใช้เครื่องหมาย --
ตัวอย่าง :
ตัวดำเนินการ
นิพจน์
ความหมาย
++ (prefix)
++a เพิ่มค่าที่ละหนึ่งให้กับ a ก่อนแล้วจึงนำค่าใหม่ของ
a ในนิพจน์นี้ไปใช้
++ (prefix)
a++
นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยเพิ่มค่า
a อีกหนึ่ง
-- (prefix)
--b ลดค่าลงอีกหนึ่งให้กับ b
ก่อน แลัวจึงนำค่าใหม่ของ b ในนิพจน์นี้ไปใช้
-- (prefix)
b-- นำค่าค่าปัจจุบันของ b
ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยลดค่า b ลง
หนึ่ง
หนึ่ง
หมายเหตุ : ++i, i++ หมายถึง i = i +1
--i,
i-- หมายถึง i = i -
3.
ตัวดำเนินการเปรียบเทียบ
เราสามารถกำหนดการทำงานของโปรแกรมให้เป็นไปตามเงื่อนไขต่างๆ
ที่ต้องการได้ โดยตรวจสอบเงื่อนไขด้วยตัวดำเนินการเปรียบเทียบ
เครื่องหมาย
|
ความหมาย
|
==
|
เท่ากับ
|
!=
|
ไม่เท่ากับ
|
<
|
น้อยกว่า
|
<=
|
น้อยกว่าหรือเท่ากับ
|
>
|
มากกว่า
|
>=
|
มากกว่าหรือเท่ากับ
|
ผลลัพธ์จากการใช้ตัวดำเนินการเปรียบเทียบจะมีค่าเป็น จริง/true/1 และ เท็จ/false/0 เท่านั้น ดังตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a == 7;
/*3*/ a != b;
/*2*/ a == 7;
/*3*/ a != b;
ดังนั้นบรรทัดที่ 2 จะให้ผลลัพธ์เป็นเท็จ (a มีค่า 5 ซึ่งไม่เท่ากับ 7) และบรรทัดที่
3 จะให้ผลลัพธ์เป็นจริง (a ไม่เท่ากับ b)
4.
ตัวดำเนินการตรรกะ
เป็นตัวดำเนินการจำพวกใช้เชื่อมครับ ตัวดำเนินการพวกนี้จะใช้มากในส่วนของเงื่อนไข
และลูปครับ ซึ่งจะอธิบายในบทต่อไป บางคนอาจจำได้เพราะเคยเรียนมาตอนม.ปลายแล้วครับ
วิชาคณิตศาสตร์ ในบทตรรกะศาสตร์ไงครับ มีความหมายตามนั้นเลยครับ
กำหนดให้ตัวแปร
A มีค่าเท่ากับ
1 (A=1) และตัวแปร B มีค่าเท่ากับ 0
(B=0)
ตารางตัวดำเนินการเชิงตรรกะ
และตัวอย่างการใช้
ตัวดำเนินการ
|
อธิบาย
|
ตัวอย่าง
|
&&
|
เครื่องหมายและในทางตรรกะ หรือเครื่องหมายandในทางดิจิตัล
|
(A && B) เป็นเท็จ
|
||
|
เครื่องหมายหรือในทางตรรกะ หรือเครื่องหมายorในทางดิจิตัล
|
(A || B) เป็นจริง
|
!
|
เครื่องหมายnotในทางตรรกะ และ ในทางดิจิตัล
|
!(A&&B) เป็นจริง
|
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 หมายถึง นิพจน์กรณีเป็นเท็จ
expression 2 หมายถึง นิพจน์กรณีเป็นจริง
expression 3 หมายถึง นิพจน์กรณีเป็นเท็จ
ตัวอย่าง
result = (x < y) ? 0 : 100
; หรือ
if (x < y)
result = 0 ; else result = 100 ; |
หมายความว่า
ถ้า x มีค่าน้อยกว่า y แล้ว
กรณีเป็นจริง ตัวแปร result จะถูกกำหนดค่าเป็น 0
กรณีเป็นเท็จ ตัวแปร result จะถูกกำหนดค่าเป็น 100
กรณีเป็นจริง ตัวแปร result จะถูกกำหนดค่าเป็น 0
กรณีเป็นเท็จ ตัวแปร result จะถูกกำหนดค่าเป็น 100
ตัวดำเนินการกับลำดับความสำคัญ
ลำดับการประมวลผลของนิพจน์ จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผลเดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา อ้างอิง หนังสือพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์ รหัส 2128-2009 https://hnumlp10508.wordpress.com/%e0%b8%9a%e0%b8%97%e0%b9%80%e0%b8%a3%e0%b8%b5%e0%b8%a2%e0%b8%99/%e0%b8%9a%e0%b8%97%e0%b8%97%e0%b8%b5%e0%b9%88-2/%e0%b8%95%e0%b8%b1%e0%b8%a7%e0%b8%94%e0%b8%b3%e0%b9%80%e0%b8%99%e0%b8%b4%e0%b8%99%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%99%e0%b8%b4%e0%b8%9e%e0%b8%88%e0%b8%99%e0%b9%8c/ |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น