ในการเขียนโปรแกรมนั้นสิ่งที่จะต้องเจอบ่อยๆ คือเงื่อนไขการตัดสินใจ
เช่นการให้เกรดของอาจารย์ ก็ต้องมีการกำหนดเงื่อนไขว่า
คะแนนเท่าไหร่จะได้เกรดอะไร เช่น
รูปแบบการเขียนโค๊ด ดังนี้
ตัดสินใจเงื่อนไขเดียว
นอกจากนี้ ยังมีรูปแบบการเขียนที่กระชับ และอ่านเข้าใจง่ายกรณีที่ใช้ตรวจสอบเงื่อนไข และไม่ต้องดำเนินการในโค๊ดยากนัก คือการใช้คำสั่ง switch …… case
switch ….. case นั้นกับการตรวจสอบเงื่อนไขที่ เขียนโค๊ดใน case นั้นไม่กี่บรรทัดเท่านั้นครับ
ถ้าเขียนยาวกว่านั้น จะค่อนข้างสับสน ว่าจบเคสรึยัง (break;) ถ้าหากมีการตรวจสอบแล้วต้องเขียนโค๊ดยาวๆก็ใช้ if ….. else ดีกว่าครับ เข้าใจง่ายกว่าว่าจบเคสที่ไหน เพราะมีวงเล็บปีกกา ( } ) เป็นตัวเปิดปิดคำสั่งให้
สำหรับการใช้ switch case แล้วต้องเขียนโค๊ดยาวจริงๆ
เคยเห็นบางที่เขียนแบบใช้วงเล็กปีกกาด้วยก็ได้นะครับ
ถ้าเงื่อนไขเดียวแนะนำให้ใช้ switch …. case ครับ แต่ถ้าตรวจสอบหลายเงื่อนไข คงแนะนำให้ใช้ if …. else แทนครับ
เงื่อนไขเดียว คือ ถ้า score เท่ากับ a
หลาย เงื่อนไข คือ ถ้า score มากกว่า a กับ b หรือมากกว่า c กับ d
คะแนน | เกรด |
0 – 49 | 0 |
50 – 59 | 1 |
60 – 69 | 2 |
70 – 79 | 3 |
80 – 100 | 4 |
รูปแบบการเขียนโค๊ด ดังนี้
ตัดสินใจเงื่อนไขเดียว
if( $score < 50 ){ echo "<br/>คุณได้เกรด 0"; }
การตัดสินใจแบบหลายเงื่อนไข<?php $score = 70; if( $score >= 80 ){ echo "คุณได้เกรด A"; }else if( $score >= 70 && $score < 80 ){ echo "คุณได้เกรด B"; }else if( $score >= 60 && $score < 70 ){ echo "คุณได้เกรด D"; }else if( $score >= 50 && $score < 60 ){ echo "คุณได้เกรด D"; }else{ echo "คุณสอบตก"; } ?>
นอกจากนี้ ยังมีรูปแบบการเขียนที่กระชับ และอ่านเข้าใจง่ายกรณีที่ใช้ตรวจสอบเงื่อนไข และไม่ต้องดำเนินการในโค๊ดยากนัก คือการใช้คำสั่ง switch …… case
<?php $grade = 'C'; echo 'เกรดที่คุณต้องการคือ เกรด '. $grade; switch( $grade ){ case 'A' : echo "คุณจะต้องได้คะแนนตั้งแต่ 80 คะแนนขึ้นไป"; break; case 'B' : echo "คุณจะต้องได้คะแนน 70 - 79 คะแนน"; break; case 'C' : echo "คุณจะต้องได้คะแนน 60 - 69 คะแนน"; break; case 'D' : echo "คุณจะต้องได้คะแนน 50 - 59 คะแนน"; break; default : echo "คุณแค่ไม่ต้องมาสอบ ไม่ต้องส่งงาน ก็จะิติด 0 ไปเอง ^^"; break; } ?>
switch ….. case นั้นกับการตรวจสอบเงื่อนไขที่ เขียนโค๊ดใน case นั้นไม่กี่บรรทัดเท่านั้นครับ
ถ้าเขียนยาวกว่านั้น จะค่อนข้างสับสน ว่าจบเคสรึยัง (break;) ถ้าหากมีการตรวจสอบแล้วต้องเขียนโค๊ดยาวๆก็ใช้ if ….. else ดีกว่าครับ เข้าใจง่ายกว่าว่าจบเคสที่ไหน เพราะมีวงเล็บปีกกา ( } ) เป็นตัวเปิดปิดคำสั่งให้
สำหรับการใช้ switch case แล้วต้องเขียนโค๊ดยาวจริงๆ
เคยเห็นบางที่เขียนแบบใช้วงเล็กปีกกาด้วยก็ได้นะครับ
จะเลือกแบบไหนก็ตามแต่สไตล์ละกันนะครับ ว่าต้องตรวจสอบหลายเงื่อนไข หรือว่าเงื่อนไขเดียว<?php $grade = 'C'; echo 'เกรดที่คุณต้องการคือ เกรด '. $grade; switch( $grade ){ case 'A' : { echo "คุณจะต้องได้คะแนนตั้งแต่ 80 คะแนนขึ้นไป"; break; }case 'B' :{ echo "คุณจะต้องได้คะแนน 70 - 79 คะแนน"; break; }case 'C' : { echo "คุณจะต้องได้คะแนน 60 - 69 คะแนน"; break; }case 'D' : { echo "คุณจะต้องได้คะแนน 50 - 59 คะแนน"; break; }default : { echo "คุณแค่ไม่ต้องมาสอบ ไม่ต้องส่งงาน ก็จะติด 0 ไปเอง ^^"; break; } } ?>
ถ้าเงื่อนไขเดียวแนะนำให้ใช้ switch …. case ครับ แต่ถ้าตรวจสอบหลายเงื่อนไข คงแนะนำให้ใช้ if …. else แทนครับ
เงื่อนไขเดียว คือ ถ้า score เท่ากับ a
<?php if( $score > $a){// 1 เงือนไข //code } ?>
หลาย เงื่อนไข คือ ถ้า score มากกว่า a กับ b หรือมากกว่า c กับ d
<?php if( ($score > a && $score > b) || ($score > c && $score > d) ){// 4 เงื่อนไข //code } else if($score < a || $score < c ){// 2 เงื่อนไข } ?>
"PHP ไม่ได้สร้างสุดยอดโปรแกรมแต่ PHP ช่วยให้งานคุณง่ายขึ้นต่างหาก"
PHP CI MANIA - PHP Code Generatorโปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม
สนใจสั่งซื้อเพียง 3,990 บาท
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ความคิดเห็น
แสดงความคิดเห็น