การควบคุมโปรแกรม

Chapter 05

การควบคุมโปรแกรม

โดยปกติ PHP จะประมวลผลประโยคคําสั่งที่เขียนจากบนลงล่าง แต่ภาษา PHP ก็มีวิธีให้กําหนดว่าประโยคคําสั่งที่จะประมวลผลถัดไป อาจไม่ใช่ ประโยคคําสั่งที่อยู่ถัดจากประโยคคําสั่งปัจจุบันก็ได้ ซึ่งเรียกว่า การควบคุม โปรแกรม (Program หรือ Flow Control) การควบคุมโปรแกรมภาษา PHP ซึ่งมีอยู่ 2 รูปแบบ คือ • การตัดสินใจเลือกทํา (Decision) • การทําซ้ํา (Repetition)

นายจักรินทร์ พรหมโสฬส รายวิชา การเขียนโปรแกรมบนเว็บ (บธ 0115) สาขาวิชา คอมพิวเตอร์ธุรกิจ วิทยาลัยชุมชนบุรีรัมย์ หน่วยจัดการศึกษาโรงเรียนบ้านกรวดวิทยาคาร

การตัดสินใจเลือกทํา (Decision)

2

คําสั่ง if

เป็นการตัดสินใจว่าจะประมวลผลโค้ดโปรแกรมส่วนใดต่อไปโดยขึ้นอยู่กับ เงื่อนไขที่กําหนด โครงสร้างภาษา PHP ที่ใช้ตัดสินใจเลือกทําประกอบด้วย • คําสั่ง if ,else และ elseif • คําสั่ง switch

เป็นนิพจน์ (expr) เงื่อนไข ซึ่งถ้ามีค่า TRUE จะประมวลผล statement แต่ถ้ามีค่า FALSE ก็จะข้าม statement ไป  รูปแบบ

if (expr) statement

3

4

คําสั่ง if

คําสั่ง if

ผังงาน

if.php

expr

FALSE

TRUE

statement

5

6

คําสั่ง if else

คําสั่ง if

ใช้ร่วมกับคําสั่ง if เพื่อกําหนดส่วนที่จะถูกประมวลผลหากเงื่อนไขของ if เป็น FALSE รูปแบบของ if ที่มี else ถ้า expr มีค่า TRUE โปรแกรมจะทํา statement1 แต่ถ้ามีค่า FALSE จะ ทํา statement2 ทั้งนี้ statement1 และ statement2 อาจเป็นประโยค คําสั่งเดียว หรือกลุ่มของประโยคคําสั่งที่ครอบไว้ด้วยเครื่องหมายปีกกาก็ได้ รูปแบบ

process_if.php

7

if (expr) statement1 else statement2

8

คําสั่ง if else

คําสั่ง if else

ผังงาน

else.php

TRUE

expr

FALSE

statement2

statement1

9

10

การใช้ if ซ้อน if (Nested if)

คําสั่ง if else

ประโยคคําสั่งภายใต้ส่วนของ if และส่วนของ else นั้นจะเป็นประโยคคําสั่ง ใดๆ ก็ได้ รวมถึงอาจเป็นประโยคคําสั่ง if ก็ได้เช่นกัน ซึ่งเป็นรูปแบบที่ เรียกว่า if ซ้อน if(Nested if) รูปแบบ

process_else.php

11

if (expr) statement1 elseif (expr2) statement3 ................. elseif (expr) statementN else statement

12

การใช้ if ซ้อน if (Nested if)

การใช้ if ซ้อน if (Nested if)

nested_if.php

process_nested_if.php

13

งานที่ 6 (assign6.php , process_assign6.php)  จงเขียนโปรแกรมแสดงผลลัพธ์ของคะแนนนักเรียน ซึ่งมีเงื่อนไข 3 ประเภท ดังต่อไปนี้ - ถ้าคะแนน 70 ขึ้นไป ให้แสดงว่า “ดีมาก” - ถ้าคะแนน 50 - 69 ให้แสดงว่า “พอใช้” - ถ้าคะแนนน้อยกว่า 50 ให้แสดงว่า “ปรับปรุง”

15

14

คําสั่ง elseif ใช้ร่วมกับคําสั่ง if เพื่อกําหนดเงื่อนไขอื่นๆ เพิ่มเติมนอกเหนือจากเงือ่ นไข หลักของ if ซึ่งถ้าเงื่อนไขของ if เป็น FALSE ก็จะมาตรวจสอบเงื่อนไขของ elseif ต่อไป รูปแบบ if (expr) statement1 elseif (expr2) statement2 .......... elseif (exprN) statementN else statement

16

คําสั่ง elseif

คําสั่ง elseif elseif.php

process_elseif.php

17

งานที่ 7 (assign7.php , process_assign7.php)  จงเขียนโปรแกรมคํานวณและแสดงส่วนลดของราคาสินค้าซึ่งมีอัตราส่วนลด 5 ประเภท คือ - ถ้าซื้อสินค้าตั้งแต่ราคา 5,000 บาท ขึ้นไป ให้มีส่วนลด 30% - ถ้าซื้อสินค้าตั้งแต่ราคา 4,000 ถึง 4,999 บาท ให้มีส่วนลด 20% - ถ้าซื้อสินค้าตั้งแต่ราคา 3,000 ถึง 3,999 บาท ให้มีส่วนลด 15% - ถ้าซื้อสินค้าตั้งแต่ราคา 2,000 ถึง 2,999 บาท ให้มีส่วนลด 10% - ถ้าซื้อสินค้าราคาน้อยกว่า 2,000 บาท ให้มีส่วนลด 5%

19

18

คําสั่ง switch บ่อยครั้งเราจําเป็นต้องนําค่าของตัวแปรและนิพจน์หนึ่งมาเปรียบเทียบกับค่า ต่างๆ แล้วเลือกประมวลผลโค้ดที่แตกต่างกันไปโดยขึ้นอยู่กับค่าของตัวแปร หรือนิพจน์นั้นว่าตรงกับค่าใด เราอาจเขียนโปรแกรมเพื่อทํางานดังกล่าวโดย ใช้โครงสร้าง if-elseif ก็ได้ แต่การใช้คําสั่ง switch จะเหมาะสมกว่า ถ้าหา expr มีค่าตรงกับกรณี (case) ใด โปรแกรมจะทําประโยคคําสั่งภายใต้ กรณีนั้น แต่หากค่าของ expr ไม่ตรงกับกรณีใดเลย โปรแกรมจะทําประโยค คําสั่งในส่วนของ default (ถ้ามี) ซึ่งส่วนนี้จะมีหรือไม่มกี ็ได้

20

คําสั่ง switch

คําสั่ง switch

รูปแบบ switch (expr) { case value1: statement1 case value1: statement1 .......... case valueN: statementN default: statement }

switch.php

21

คําสั่ง switch

22

งานที่ 8 (assign8.php , process_assign8.php)  จงเขียนโปรแกรมคํานวณและแสดงส่วนลดของราคาสินค้าซึ่งมีอัตราส่วนลด ตามประเภทของลูกค้า คือ

process_switch.php

- ลูกค้าประเภทที่ 1 ให้มีส่วนลด 20% - ลูกค้าประเภทที่ 2 ให้มีส่วนลด 15% - ลูกค้าประเภทที่ 3 ให้มีส่วนลด 10% - ลูกค้าประเภทที่ 4 ให้มีส่วนลด 5%

23

24

การทําซ้ํา (Repetition)

คําสั่ง while

เป็นการประมวลผลโค้ดโปรแกรมส่วนใดส่วนหนึ่งซ้ํากันไปเรื่อยๆ ตาม เงื่อนไขที่กําหนด ซึ่งมักเรียกว่า การวนลูป (Looping) การทําซ้ําหรือการวน ลูปนี้มีประโยชน์ในงานหลายอย่าง เช่น การแสดงรายการข้อมูลที่ดึงมาจาก ฐานข้อมูล หรือแสดงรายการตัวเลือกในลิสต์บ็อกซ์ เป็นต้น โครงสร้างที่ใช้วนลูปในภาษา PHP ประกอบด้วย • คําสั่ง while หรือเรียกว่าลูปแบบ while • คําสั่ง do...while หรือเรียกว่าลูปแบบ do...while • คําสั่ง for หรือเรียกว่าลูปแบบ for

คําสั่ง while จะประมวลผล statement ไปเรื่อยๆ ตราบใดที่นิพจน์ expr มี ค่า TRUE (หรือประเมินผลได้ค่า TRUE เช่น ค่าจํานวนเต็มใดๆ ที่ไม่ใช่ 0 เป็นต้น) โดย statement อาจเป็นประโยคคําสั่งเดียว หรือกลุ่มของประโยค คําสั่งที่ครอบไว้ด้วยเครื่องหมายปีกกาก็ได้ รูปแบบ while (expr) statement1

25

คําสั่ง while ผังงาน

คําสั่ง while while.php

เข้าสู่ while

FALSE ออกจาก while

26

expr TRUE

statement1 27

28

คําสั่ง while

งานที่ 9 (assign9.php , process_assign9.php)  จงเขียนโปรแกรมรับค่า 2 ค่า และหาผลรวมของตัวเลขตั้งแต่ชุดที่ 1 จนถึง ชุดที่ 2 เช่น

process_while.php

- รับตัวเลขชุดที่ 1 = 3 - รับตัวเลขชุดที่ 2 = 5 - ผลลัพธ์ที่ได้ คือ 12 ได้มาจาก 3+4+5

29

คําสั่ง do...while

30

คําสั่ง do...while

คําสั่ง do...while จะประมวลผล statement ก่อนแล้วตรวจสอบเงื่อนไข (expr) ทีหลัง ถ้าเงื่อนไขเป็น TRUE จึงจะวนกลับไปทํา statement แล้ว ตรวจสอบเงื่อนไขใหม่อีกครั้ง แต่ถ้าเป็น FALSE ก็จะออกจากลูป ดังนั้นคําสั่ง do...while จึงทํา statement อย่างน้อย 1 ครั้งเสมอ ในขณะที่คําสั่ง while อาจไม่ทํา statement เลยหากนิพจน์เงื่อนไขมีค่า FALSE ตั้งแต่แรก รูปแบบ

ผังงาน

เข้าสู่ do...while

statement1

do statement while (expr);

expr 31

FALSE ออกจาก while

TRUE 32

คําสั่ง do...while

คําสั่ง do...while

dowhile.php

process_dowhile.php

33

งานที่ 10 (assign10.php , process_assign10.php)  จงเขียนโปรแกรมสูตรคูณ โดยผู้ใช้สามารถเลือกได้ว่า จะให้แสดงสูตรคูณแม่ ใด โดยให้แสดงคูณ 1 จนถึง 12

34

คําสั่ง for การทํางานโดยรวมของคําสั่ง for จะเหมือนกับคําสั่ง while แต่คําสั่ง for เตรียมตําแหน่งไว้ให้กําหนดนิพจน์ที่ต้องการทําเมือ่ เข้าสู่ลูป (เช่น การ กําหนดค่าเริ่มต้นให้ตัวนับของลูป) และนิพจน์ที่ใช้ปรับปรุงสถานะของลูป (เช่นการเพิ่มค่าตัวนับของลูป) ได้อย่างสะดวก รูปแบบ for (expr1; expr2; expr3) statement

35

นิพจน์ expr1 จะถูกทําครั้งเดียวตอนเข้าสู่ลูป จากนั้นจะตรวจสอบนิพจน์ expr2 ซึ่งเป็นเงื่อนไขของลูป ถ้านิพจน์นี้เป็น TRUE จึงจะทํา statement แล้วทํานิพจน์ expr3 แล้วกลับมาตรวจสอบนิพจน์ expr2 ใหม่อีกครั้ง แต่ถ้า 36 expr2 เป็น FALSE จะออกจากลูปทันที

คําสั่ง for

คําสั่ง for

เข้าสู่ for

ผังงาน

for.php

ทํานิพจน์ expr1 FALSE

expr2 TRUE

ออกจาก for 37

คําสั่ง for

statement ทํานิพจน์ expr3

38

งานที่ 11 (assign11.php , process_assign11.php)  จงเขียนโปรแกรมรับค่า 2 ค่า และหาผลรวมของตัวเลขตั้งแต่ชุดที่ 1 จนถึง ชุดที่ 2 เช่น (โดยใช้การวนลูปแบบ for)

process_for.php

- รับตัวเลขชุดที่ 1 = 3 - รับตัวเลขชุดที่ 2 = 5 - ผลลัพธ์ที่ได้ คือ 12 ได้มาจาก 3+4+5

39

40

Q&A Chapter 05

Complete

php5.pdf

Loading… Page 1. Whoops! There was a problem loading more pages. php5.pdf. php5.pdf. Open. Extract. Open with. Sign In. Main menu. Displaying php5.pdf.

725KB Sizes 3 Downloads 89 Views

Recommend Documents

No documents