ในการเขียนโปรแกรมนั้นสิ่งที่จะต้องเจอบ่อยๆ คือเงื่อนไขการตัดสินใจ
เช่นการให้เกรดของอาจารย์ ก็ต้องมีการกำหนดเงื่อนไขว่า
คะแนนเท่าไหร่จะได้เกรดอะไร เช่น
รูปแบบการเขียนโค๊ด ดังนี้
ตัดสินใจเงื่อนไขเดียว
นอกจากนี้ ยังมีรูปแบบการเขียนที่กระชับ และอ่านเข้าใจง่ายกรณีที่ใช้ตรวจสอบเงื่อนไข และไม่ต้องดำเนินการในโค๊ดยากนัก คือการใช้คำสั่ง 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
โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"




ความคิดเห็น
แสดงความคิดเห็น