240 likes | 342 Views
Week 3 Flow Control in PHP. อ.ปัณฑรีย์ สวัสดิมงคล sapantharee@yahoo.com. หัวข้อบรรยาย. การควบคุมการทำงาน ( Flow Control) ในภาษา PHP If…else switch while do...while for. เท็จ. เงื่อนไข. จริง. จริง. เท็จ. Flow Control ในภาษา PHP.
E N D
Week 3Flow Control in PHP อ.ปัณฑรีย์ สวัสดิมงคล sapantharee@yahoo.com
หัวข้อบรรยาย • การควบคุมการทำงาน (Flow Control) ในภาษา PHP • If…else • switch • while • do...while • for
เท็จ เงื่อนไข จริง จริง เท็จ Flow Control ในภาษา PHP • Flow Control (การควบคุมการทำงานในภาษา PHP)– ในการเขียนโปรแกรมแบบโครงสร้าง จะมีรูปแบบในการแก้ปัญหาหรือรูปแบบการเขียนโปรแกรม 3 ลักษณะ คือ Sequential Selection Repetition
Flow Control ในภาษา PHP • Flow Control (การควบคุมการทำงานในภาษา PHP)– มีคำสั่ง 2 ประเภทใหญ่ๆ คือ • คำสั่งให้เลือกทำ (Selection Statement) • if … else • switch • คำสั่งวนทำซ้ำ/วนลูป (Repetition Statement) • while • do … while • for
Flow Control ในภาษา PHP • คำสั่ง if • เป็นคำสั่งที่ใช้ในการทดสอบเงื่อนไขและเลือกปฏิบัติตามเงื่อนไข • รูปแบบ if (condition) { Statement ; … ; … } • ตัวอย่าง if ($height > 0 && $width > 0) { $area = $height*$width; echo “Area of square = ” .$area; } เงื่อนไข เท็จ จริง คำสั่งต่าง ๆ เมื่อ เงื่อนไขเป็นจริง คำสั่งถัดไป
เงื่อนไข เท็จ จริง คำสั่งต่าง ๆ เมื่อ เงื่อนไขเป็นเท็จ คำสั่งต่าง ๆ เมื่อ เงื่อนไขเป็นจริง คำสั่งถัดไป Flow Control ในภาษา PHP • คำสั่ง if … else • รูปแบบ if (condition) { Statement ; … } else { Statement ; … } • ตัวอย่าง if ($height > 0 && $width > 0) { $area = $height*$width; echo “Area of square = ” .$area; } else { echo “Please enter new value”;}
Flow Control ในภาษา PHP • คำสั่ง if … elseif (netsed if statement) • รูปแบบ if (condition1) { Statement ; … } elseif (condition2) { Statement ; … } else { Statement ; … } เงื่อนไข 1 เท็จ จริง เงื่อนไข 2 คำสั่งต่าง ๆ เมื่อ เงื่อนไข 1 เป็นจริง เท็จ จริง เงื่อนไข 3 คำสั่งต่าง ๆ เมื่อ เงื่อนไข 2 เป็นจริง เท็จ จริง คำสั่งต่าง ๆ เมื่อ เงื่อนไข 3 เป็นจริง คำสั่งถัดไป
Flow Control ในภาษา PHP • คำสั่ง if … elseif (netsed if statement) • ตัวอย่าง if ($score < 0) echo “Enter new score\n”; elseif ($score >= 80.0) $grade = “A”; elseif ($score >= 60.0) $grade = “B”; else $grade = “C”; เงื่อนไข 1 เท็จ จริง เงื่อนไข 2 คำสั่งต่าง ๆ เมื่อ เงื่อนไข 1 เป็นจริง เท็จ จริง เงื่อนไข 3 คำสั่งต่าง ๆ เมื่อ เงื่อนไข 2 เป็นจริง เท็จ จริง คำสั่งต่าง ๆ เมื่อ เงื่อนไข 3 เป็นจริง คำสั่งถัดไป
ตัวแปร case : ค่าที่ 1 case : ค่าที่ 2 case : ค่าที่ N คำสั่งที่ต่างๆ เมื่อตัวแปร มีค่าเท่ากับค่าที่ 1 คำสั่งที่ต่างๆ เมื่อตัวแปร มีค่าเท่ากับค่าที่ 2 คำสั่งที่ต่างๆ เมื่อตัวแปร มีค่าเท่ากับค่าที่ N คำสั่งถัดไป Flow Control ในภาษา PHP • Switchเป็นคำสั่งที่มีการทำงานคล้ายคำสั่ง if แต่จะมีการกำหนดเป็นทางเลือก ซึ่งอาจมาจากเงื่อนไข หรือ ค่าของตัวแปรที่ต้องการตรวจสอบ
Flow Control ในภาษา PHP • การใช้ switch จะตามด้วยตัวแปรที่ต้องการตรวจสอบค่า ถ้าตรงกับ case ไหน จะทำตามคำสั่งใน case นั้นไปจนกว่าจะเจอคำสั่ง break แต่ถ้าหากเปรียบเทียบแล้วไม่ตรงกับ case ใด ๆ เลย จะทำในคำสั่ง default รูปแบบ switch (variable) { case value1 : statement; break; case value2 : statement; break; case valueN : statement; break; default : statement; }
Flow Control ในภาษา PHP <html> <body> <? $day = date("l"); //ตัวแอลนะ switch ( $day) { case "Monday" : echo "วันนี้วันจันทร์" ;break; case "Tuesday" : echo "วันนี้วันอังคาร" ;break; case "Wednesday" : echo "วันนี้วันพุธ" ;break; case "Thursday" : echo "วันนี้วันพฤหัส เรียนอีกวันก็หยุดแล้ว" ;break; case "Friday" : echo "วันนี้วันสุดท้ายของการเรียน" ;break; default : echo "เฮ.. วันนี้วันหยุด นอนอยู่บ้าน" ; } ?> </body> </html>
Flow Control ในภาษา PHP • กรณีหลายๆ case ทำงานอย่างเดียวกัน /* How many days in a month? */ switch ($month) { case 2: //Feb $days = 28; break; case 9: // Sep case 4: // April case 6: // June case 11: // Nov $days = 30; break; default: $days = 31; // All of the rest }
Flow Control ในภาษา PHP • เปรียบเทียบการใช้ switch และ if $year = 15; if($year == 5) { $rate = 12; }elseif($year == 15) { $rate = 18; }elseif($year == 20) { $rate = 24; }else{ echo "Error!!"; } $year = 15; switch ($year){ case 5 : $rate = 12; break; case 15 : $rate = 18; break; case 20 : $rate = 24; break; default : echo "Error!!"; }
Flow Control ในภาษา PHP • while และ do .. while เป็นการทำงานแบบ loop เช่นกันแต่มีการเปลี่ยนตำแหน่งของการเช็คเงื่อนไข • whileจะเช็คก่อนทำใน loop ดังนั้น ถ้าเช็คครั้งแรกแล้วเงื่อนไขเป็นเท็จ จะไม่มีการเข้าทำงานในลูปเลย • do.. while ทำใน loop 1 ครั้งก่อนแล้วค่อยไปเช็คเงื่อนไข ดังนั้น ถึงการเช็คเงื่อนไขครั้งแรกเป็นเท็จ คำสั่งที่อยู่ภายในลูปก็จะได้รับการทำงานอย่างน้อยที่สุด 1 ครั้งเสมอ
เงื่อนไข เท็จ จริง คำสั่งที่ 1 คำสั่งที่ 2 while Flow Control ในภาษา PHP คำสั่งที่ 1 เงื่อนไข จริง เท็จ คำสั่งที่ 2 do..while
Flow Control ในภาษา PHP • เมื่อต้องการให้เกิดการทำงานซ้ำ • จะทำงานเมื่อเงื่อนไขเป็นจริง • ไม่รู้ว่าจะต้องทำซ้ำกี่ครั้ง (แต่ถึงรู้จำนวนครั้งที่จะวนซ้ำ ก็สามารถใช้ while และ do..while ได้ เพียงแต่ไม่เป็นที่นิยม เพราะจะใช้ for แทน) • คำสั่งที่อยู่ใน loop ต้องส่งผลให้เงื่อนไขที่เช็คมีโอกาสเป็นเท็จ (ออกจาก loop ได้) มิเช่นนั้นจะเกิดเหตุการณ์ loop ไม่รู้จบ
Flow Control ในภาษา PHP • while statement • รูปแบบ while (condition) • { statement; …… } • do…while statement • รูปแบบ do { • statement; …… } • while (condition);
Flow Control ในภาษา PHP <? $counter=5; while ($counter > 0){ echo $counter; echo "<br />"; $counter--; } ?> <? $counter=5; do{ echo $counter; echo "<br />"; $counter--; } while ($counter > 0) ?>
Flow Control ในภาษา PHP • forเป็นคําสั่งวนซ้ำที่ใช้แก้ปัญหาโจทย์ลักษณะ ที่มีการทำงานเดิมซ้ำๆกันหลาย ๆ ครั้งโดยที่รู้จำนวนรอบที่แน่นอน • รูปแบบแบ่งออกเป็น 3 ส่วน คือ • ส่วนกำหนดค่าตัวนับ เป็นการกำหนดค่าเริ่มต้นให้กับตัวแปร เพื่อใช้ควบคุมการวน loop • ส่วนที่ตรวจสอบเงื่อนไขเพื่อตัดสินว่าจะวนซ้ำ หรือไม่ • ส่วนของการจัดการค่าตัวนับของการวนซ้ำ เป็นการเพิ่มค่าหรือการลดค่าให้ตัวแปรที่ควบคุม loop
For i=1 to 3 พิมพ์ค่า i พิมพ์ Hello Flow Control ในภาษา PHP for ( $i=1 ; $i <=3 ; $i++) { echo $i.“Hello”; }
Flow Control ในภาษา PHP • การเพิ่มค่าในแต่ละรอบจะเป็นเท่าไรก็ได้ เช่น for($x = 0;$x<=100;$x+= 5) • ในส่วนของการเปลี่ยนค่า นอกจากการเพิ่มค่า (increment) สามารถกำหนดให้มีการลดค่าของตัวแปรที่ใช้ในการวนรอบได้ for($x = 100;$x>0;$x--) • ตัวแปรที่ใช้ในการวนรอบอาจกำหนดให้เป็นชนิด char ได้ for($ch = ‘a’;$ch<=‘z’;$ch++)
Flow Control ในภาษา PHP • breakจะใช้หยุดการทำงานของวนรอบ loop for ($i=1; $i<11; $i++) { if ($i == 6) break; echo "Hello...ครั้งที่ $i <br>"; }
Flow Control ในภาษา PHP • continueจะทำงานตรงข้ามกับคำสั่ง Break คำสั่ง Continue จะสั่งให้โปรแกรมทำงานต่อไป • คำสั่ง Continue กับ For คือจะเป็นการสั่งให้กลับไปเพิ่มค่าให้กับตัวแปรทันที • คำสั่ง Continue กับ While คือจะเป็นการสั่งให้กลับไปทดสอบเงื่อนไขใหม่ทันที <? for($i=1;$i<11;$i++){ if($i==6){ continue;} echo "Hello...ครั้งที่ $i <br>"; } ?> Hello...ครั้งที่ 1 Hello...ครั้งที่ 2 Hello...ครั้งที่ 3 Hello...ครั้งที่ 4 Hello...ครั้งที่ 5 Hello...ครั้งที่ 7 Hello...ครั้งที่ 8 Hello...ครั้งที่ 9 Hello...ครั้งที่ 10