| คะแนน | เกรด |
| 0 – 49 | 0 |
| 50 – 59 | 1 |
| 60 – 69 | 2 |
| 70 – 79 | 3 |
| 80 – 100 | 4 |
รูปแบบการเขียนโค๊ด ดังนี้
ตัดสินใจเงื่อนไขเดียว
if( $score < 50 ){ echo "<br/>คุณได้เกรด 0"; }
การตัดสินใจแบบหลายเงื่อนไข
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <?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 แล้วต้องเขียนโค๊ดยาวจริงๆ
เคยเห็นบางที่เขียนแบบใช้วงเล็กปีกกาด้วยก็ได้นะครับ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| <?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
1
2
3
4
5
| <?php if( $score > $a){// 1 เงือนไข //code }?> |
หลาย เงื่อนไข คือ ถ้า score มากกว่า a กับ b หรือมากกว่า c กับ d
1
2
3
4
5
6
7
| <?php if( ($score > a && $score > b) || ($score > c && $score > d) ){// 4 เงื่อนไข //code } else if($score < a || $score < c ){// 2 เงื่อนไข }?> |

