course new

Page 1

ใบความรูท้ ี่ 6 ค้าสั่งตรวจสอบเงือ่ นไขและค้าสั่งท้าซา้ ค้าสั่งตรวจสอบเงื่อนไข If คาสั่งเพื่อใช้ในการตรวจสอบเงื่อนไข หรืออาจจะเรียกว่าคาสั่งแบบทาง เลือกในลักษณะของ คาสั่ง if นี้สามรถแบ่งออกได้เป็น 3 ลักษณะด้วยกัน คือ คาสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว, คาสั่งตรวจสอบเงื่อนไขแบบ 2 ทางเลือก และคาสั่งตรวจสอบเงื่อนไขแบบหลายทางเลือก จะขอ อธิบายลักษณะของแต่ละคาสั่ง พร้อมทั้งยกตัวอย่างโปรแกรม PHP ของแต่ละคาสั่งดังนี้

ค้าสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว ( Single - alternative) เป็นลักษณะของเงื่อนไขที่ให้ตรวจสอบ หรือทางเลือกที่ให้ตรวจสอบมีแค่ทางเดียวโดยเงื่อนไข ที่ใช้ตรวจสอบปกติจะเป็นนิพจน์ ดังนั้นผลของนิพจน์ดังกล่าว ก็จะมีค่าไม่จริงก็เท็จอย่างใดอย่างหนึ่ง พิจารณา Flowchart เพื่อแสดงการทางานของคาสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว รวมทั้ง รูปแบบคาสั่ง if ทางเลือกเดียว ดังนี้


พิจารณาตัวอย่างโปรแกรมต่อไปนี้ โดยต้องการเขียนโปรแกรมภาษา PHP เพื่อคานวณหา ส่วนลดที่ได้จากการซื้อสินค้า และค่าราคาสินค้าสุทธิ โดยกาหนดเงื่อนไขในการใช้ส่วนลด คือ ถ้า ลูกค้าซื้อสินค้าเป็นจานวนเงินมากกว่าหรือเท่ากับ 5,000 บาท จะได้รับส่วนลด 3% ของราคราสินค้า และได้กาหนดให้ $price1 และ $price2 คือตัวแปรราคาสินค้าก่อนหักส่วนลด, $discount คือตัว แปรของส่วนลดที่คานวณได้ และ $netprice คือ ตัวแปรของราคาสินค้าหลังจากหักค่าส่วนลด If 1. php

ค้าสั่งตรวจสอบเงื่อนไข 2 ทางเลือก (Dual - alternative) เป็นลักษณะของเงื่อนไขที่ให้ตรวจสอบ หรือทางเลือกที่ให้ตรวจสอบมี 2 ทางเลือก โดย เงื่อนไขที่ใช้ในการตรวจสอบปกติจะเป็นนิพจน์ ดังนั้นผลลัพธ์ของนิพจน์ดังกล่าวจะมีค่าไม่จริงก็เท็จ อย่างใดอย่างหนึ่ง พิจารณา Flowchart เพื่อแสดงการทางานของคาสั่งตรวจสอบเงื่อนไขแบบ 2 ทางเลือก รวมทั้งรูปแบบคาสั่ง If แบบ 2 ทางเลือก ดังนี้

พิจารณาตัวอย่างโปรแกรมต่อไปนี้โดยต้องการเขียนโปรแกรมภาษา PHP เพื่อคานวณหา ส่วนลดที่ได้จากการซื้อสินค้า และค่าราคาสินค้าสุทธิ โดยกาหนดเงื่อนไขในการใช้ส่วนลด คือ ถ้า ลูกค้าซื้อสินค้าเป็นจานวนเงินมากกว่าหรือเท่ากับ 10,000 บาท จะได้รับส่วนลด 5% ของราครา สินค้า แต่ ถ้าราคาสินค้าไม่ถึง10, 000 บาท ก็จะได้รับส่วนลด 3% ของราคาสินค้า และได้กาหนดให้


$price1 และ $price2 คือตัวแปรราคาสินค้าก่อนหักส่วนลด, $discount คือตัวแปรของส่วนลดที่ คานวณได้ และ $netprice คือ ตัวแปรของราคาสินค้าหลังจากหักค่าส่วนลดแล้ว If 1. php จากโปรแกรมและผลลัพธ์โปรแกรมข้างต้นได้สมมุติราคาสินค้า 2 ราคา คือ 12,000 และ 7,000 บาท หลังจากนั้นก็นาราคาสินค้าแต่ละราคาเข้าไปทาการตรวจสอบเงื่อนไขว่าราคาสินค้า ดังกล่าวว่ามีค่ามากกว่าหรือเท่ากับ 10,000 บาทหรือไม่ ถ้าจริงต้องทาการคานวณส่วนลด 5% ให้แต่ ถ้าราคาสินค้าไม่ถึง 10,000 บาท ก็จะทาการคานวณส่วนลดให้เพียง 3% หลังจากนั้นก็จะนาค่า ส่วนลดที่คานวณได้ไปทาการคานวณราคาสินค้าสุทธิและก็พิมพ์ผลลัพธ์ทั้งหมดออกมา จะเห็นราคา สินค้าที่ 1 มีราคา 12,000 บาท ลูกค้าจะได้รับส่วนลด 5% คือ 600 บาท แต่ราคาสินค้าที่ 2 มีราคา 7,000 บาท ลูกค้าจะได้รับส่วนลด 3% คือ 210 บาท ค้าสั่งตรวจสอบเงื่อนไขแบบหลายทางเลือกหรือทางเลือกแบบซ้อน (Nested- alternative) เป็นลักษณะของเงื่อนไขที่ให้ตรวจสอบ หรือมีทางเลือกจานวนหลายทาง ซึ่งแต่ละเงื่อนไขจะมี ลักษณะในการประมวลผลของคาสั่ง if แบบนี้ก็ยังมีลักษณะการทางานเหมือนเดิม หรือหลังคาสั่ง if จะเป็นนิพจน์ให้ตรวจสอบว่าจริงหรือเท็จ ถ้านิพจน์มีค่าเป็นจริงก็จะทาคาสั่งในวงเล็บปีกกาที่อยู่ถัดลง ไป แต่ถ้านิพจน์มีค่าเป็นเท็จก็จะลงไปทาคาสั่งในวงเล็บปีกกาหลังคาสั่ง else แต่ในกรณีนี้หลังคาสั่ง else จะมีคาสั่ง if อีกคาสั่งซ้อนอยู่ ซึ่งเราจะต้องเริ่มพิจารณษเงื่อนไขหลัง if นี้ตามหลักการเดิม ลักษณะคาสั่งก็จะเป็นเช่นนี้ไปเรื่อยๆ จนกระทั่งเงื่อนไขที่ต้องการตรวจสอบครบทุกเงื่อนไข พิจาณา Flowchart เพื่อแสดงการทางานของคาสั่งตรวจสอบเงื่อนไขแบบหลายทางเลือก รวมทั้งรูปแบบคาสั่ง if แบบหลายทางเลือกดังนี้

ค้าสั่งตรวจสอบเงื่อนไข Switch คาสั่งตรวจสอบ Switch เป็นคาสั่งที่เหมาะสาหรับเงื่อนไขที่มีหลายๆ ทางเลือก การใช้คาสั่ง Switch จะช่วยให้โปรแกรมที่เขียนขึ้นสั้นกระชับ พิจารณา Flowchart และรูปแบบคาสั่ง Switch ตามรูปต่อไปนี้


ค้าสั่งท้าซ้า While คาสั่งทาซ้า While มีลักษณะการรวมเพื่อทาคาสั่งที่อยู่ภายในช่วงของการทาซ้า เหมาะสม หรับการเขียนโปรแกรมที่ต้องการเขียนคาสั่งบางคาสั่งซ้ากัน โดยไม่ต้องพิมพ์คาสั่งนั้นหลาย ๆ ครั้ง ใน การเขียนคาสั่งนั้นๆ เพียงครั้งเดียวและใหมีการวนรอบตามจานวนที่ต้องการ ลักษณะของการทาซ้า While เป็นการทาซ้าแบบ Indefinite loop คือเป็นการทาซ้าที่ไม่ทราบจานวนรอบที่แน่นอน พิจารณา Flowchart รูปแบบคาสั่ง While ตามรูปต่อไปนี้


ค้าสั่ง For จากหัวข้อที่ผ่านมาได้รู้จักคาสั่งทาซ้า while ไปแล้ว ซึ่งเป็นคาสั่งทาสั่งในลักษณะ Indefinite loop คือไม่ทราบจานวนรอบที่แน่นอนของการทาซ้า ทราบแต่เพียงว่าจะกระทาการวนซ้าก็ต่อเมื่อ เงื่อนไขในการพิจารณาเป็นจริง แต่ถ้าเงื่อนไขเป็นเท็จก็จะหยุดการทาซ้า แต่สาหรับคาสั่ง For จะเป็น คาสั่งในลักษณะ Definite loop คือทราบรอบที่แน่นอนว่าซ้ากี่รอบ

ค้าสั่งท้าซ้า Do . . . while คาสั่งทาซ้า Do . . . while นี้มีลักษณะการทาซ้าแบบ Indefinite loop เหมือนกับคาสนั่ง ทาซ้า while คือเป็นการทาซ้าที่ไม่ทราบจานวนรอบที่แน่นอน ลักษณะการทางานสามารถอธิบายได้ ด้วย Flowchart รวมทั้งรูปแบบของคาสั่งเป็นรูปต่อไปนี้


ค้าสั่งออกจากการท้างาน คาสั่งทาซ้า while, for, do . . while และคาสั่งตรวจสอบเงื่อนไข switchจะทาการ ประมวลผลตามเงื่อนไขที่กาหนดไว้ แต่ในบางครั้งเราอาจต้องการออกจากการทางานก่อนที่คาสั่งนั้น ๆ จะประมวลผลสาเร็จโดยคาสั่งออกจากการทางานแบ่งออกเป็น 2 ลักษณะ คือ คาสั่ง break จะออกจากการทางานของคาสั่งนั้นและลงไปทาคาสั่งที่อยู่ถัดไป คาสั่ง exit หรือ die จะออกจากโปรแกรมนั้นไปเลย พิจารณา 2 โปรแกรมต่อไปนี้เพื่อเปรียบเทียบการใช้คาสั่ง break และ exit หรือ die ดังต่อไปนี้ break.php

ตัวอย่างต่อไปจะแก้ไขโปรแกรมโดยเปลี่ยนจากคาสั่ง break เป็น exit แทนโปรแกรมที่ได้เป็นดังนี้ exit.php


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.