คะแนน | เกรด |
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 เงื่อนไข } ?> |