2011/08/28

Object Pascal - เงื่อนไข

สวัสดีครับ กลับมาเจอกันอีกแล้ว ไม่รู้ว่ามีคนอ่านรึเปล่านะ ฮ่า ๆ

เป็นยังไงบ้างครับ ได้ลองเขียนโปรแกรมคำนวณอะไรเล็ก ๆ น้อย ๆ พวก พื้นที่สามเหลี่ยม ฯลฯ เล่นกันรึยังครับ

วันนี้ผมจะมาบอกวิธีเพิ่มเงื่อนไขลงไปในโปรแกรมครับ

เรื่องนี้ก็ไม่มีอะไรมากครับ แค่ตรวจสอบค่าเงื่อนไข ว่าถ้าเป็นจริงให้ทำอย่างหนึ่ง แต่ถ้าไม่จริงให้ทำอีกอย่าง

มาดูเงื่อนไขแบบแรกเลยครับ เป็นเงื่อนไขแบบ ถ้าจริงให้ทำอย่างหนึ่ง แต่ถ้าไม่จริงให้ข้ามไปทำสั่งต่อไป
เป็นแบบคือ if _____ then
อย่างเช่น ผมจะเช็คว่า ค่าที่รับเข้ามาเป็นเลขคู่ใช่หรือไม่ ถ้าใช่ให้แสดงผลว่า Even ลองมาดู Source Code กันเลยครับ


จาก Source Code นะครับ จะเห็นว่า ถ้าเลขที่รับเข้ามาเป็นเลขคู่ (หาร 2 แล้วเหลือเศษ 0) ให้พิมพ์คำว่า Even แล้วก็พิมพ์คำว่า End แต่ถ้ารับค่ามาเป็นเลขคี่ จะไม่เข้าไปทำงานในคำสั่ง if จะพิมพ์คำว่า End เลย

ลองดูผลการรัน




จะเห็นว่ามันจะทำงานคำสั่งหลังคำสั่ง if เพียงคำสั่งเดียว แล้วถ้าต้องการให้ทำหลาย ๆ คำสั่งหล่ะ ?
  เราจะใช้บล็อกคำสั่ง หรือก็คือ begin ... end; นั้นเอง
ลองใส่ begin end; กันดูครับ



ต่อไปเป็นถ้าเช็คเงื่อนไขแบบ ถ้าจริงให้ทำอย่างหนึ่ง แต่ถ้าไม่จริงให้ทำอีกอย่าง
เราจะใช้ if ___ then ___ else ___
ลองดูตัวอย่างเลย


ถ้าสังเกตดี ๆ จะเห็นว่า หลังคำสั่งก่อนที่จะขึ้น else ไม่มี ; (Semi-Colon) ปิดท้าย
เราจะไม่ใส่ ; ปิดท้ายคำสั่งสุดท้าย ก่อนที่จะขึ้น else ถ้าเราใช้ begin end เราจะไม่ใส่ ; หลัง end เช่น



if อีกแบบ คือ if else if จริง ๆ ก็ไม่ใช่แบบใหม่หรอก แต่เป็นการซ้อน if เข้าไปอีกชั้น
เช่นถ้าเราจะตรวจสอบว่า เลขที่ใส่เข้ามา อยู่ระหว่างช่วงไหน เราจะเขียนได้เป็นแบบนี้


ลองเขียนแล้วรันดูนะครับ ;)

นอกจากนี้เรายังสามารถเชื่อมเงื่อนไข หลายเงื่อนไขเข้าด้วยกันได้โดยใช้ and, or หริอ xor
แต่จะต้องใส่วงเล็บแต่ละเงื่อนไขด้วย เช่น



  ต่อไปเงื่อนไขอีกแบบ ก็คือเงื่อนไขแบบ case of คือการเลือก ทำงานคล้าย ๆ if else if แต่ใช้ได้กับ ตัวอักษร (Char) กับ จำนวนเต็ม เท่านั้น
  ลองเอา Code ข้างบนมาเปลี่ยนเป็น case of ดูจะได้ว่า


เจอแบบนี้เลยอาจจะงง
ลองมาดูตัวอย่างแบบง่าย ๆ ดีกว่า เช่น ตรวจสอบว่าค่าที่ใส่มาเป็น 1, 2 หรือ 3


จะเห็นว่า โครงสร้างของ case of จะเป็น
case ตัวแปรที่ตรวจสอบ of
  case_1: คำสั่ง1;
  case_2: คำสั่ง2;
  ...
  else คำสั่งเมื่อไม่ใช่ค่าที่ตรวจสอบข้างบน
end;

เราจะใส่ else หรือไม่ใส่ก็ได้ และยังสามรถใช้ begin end; ได้อีกด้วย และถ้าต้องการตรวจสอบหลายค่า
เช่น เป็น 1, 2 หรือ 1..10, 30..40 ลองดูคำสั่งดีกว่าครับ :)



เป็นยังไงบ้างครับ หวังว่าจะเข้าใจกันนะครับ

ก่อนจากกันวันนี้ ผมขอฝากการบ้านไว้สักหน่อยละกันครับ ฝึกเยอะ ๆ จะได้เก่ง ๆ

5) เขียนโปรแกรมรับค่าคะแนน แล้วตรวจสอบว่าคะแนนอยู่ช่วงไหน แล้วแสดงเกรดดังนี้
คะแนน 0 - 49 เกรด F
คะแนน 50 - 60 เกรด D
คะแนน 61 - 70 เกรด C
คะแนน 71 - 80 เกรด B
คะแนน 81 - 100 เกรด A

6) รับค่าเงินเข้ามาแล้วเช็คว่า ถ้าค่าที่รับเข้ามาน้อยกว่า 1 หมื่นบาท จะได้ดอกเบี้ย 3% แต่ถ้ามากกว่า 1 หมื่นบาท แต่น้อยกว่า 1 แสนบาท จะได้ดอกเบี้ย 6% ถ้ามากกว่านั้นจะได้ดอกเบี้ย 8%

วันนี้ก็เอาไว้แค่นี้นะครับ :)

No comments:

Post a Comment