เงือนไข else จากตัวอย่างการใช้คำสั่ง if ถ้าเกิดนิพจน์มีค่าเป็นเท็จ (false) ขึ้นมา เราสามารถใช้ else เข้ามาทำงานร่วมกับ if ได้ โดยที่บอกว่าจะให้ทำอะไรต่อไปถ้านิพจน์นั้นมีค่าเป็นเท็จ การใช้งานดังนี้
รูปแบบ else
if ( นิพจน์ ) {
// โค้ดที่ใช้ในการประมวลผล
// ในกรณีนิพจน์เท่ากับ true
} else {
// โค้ดที่ใช้ในการประมวลผล
// ในกรณีนิพจน์เท่ากับ false
}
ตัวอย่างการใช้งาน else
โค๊ด:
<?
$url = "http://www.swry.ac.th";
if ($url == "http://www.datatan.net") {
echo "เว็บไซต์ DATATAN.NET - Web Making ศูนย์กลางข้อมูลเพื่อคนทำเว็บ";
} else {
echo "เว็บไซต์อะไรไม่รู้ไม่รู้จัก";
}
?>
จากตัวอย่างการใช้งาน else จะสังเกตได้ว่านิพจน์มีค่าเป็นเท็จเพราะ $url มีค่าเท่ากับ "http://www.swry.ac.th" จึงทำให้นิพจน์เป็นเท็จ ดังนั้นโปรแกรมจึงไปทำการประมวลผลโด้ดที่อยู่หลัง else ก็จะแสดงข้อความ "เว็บไซต์อะไรไม่รู้ไม่รู้จัก" $url = "http://www.swry.ac.th";
if ($url == "http://www.datatan.net") {
echo "เว็บไซต์ DATATAN.NET - Web Making ศูนย์กลางข้อมูลเพื่อคนทำเว็บ";
} else {
echo "เว็บไซต์อะไรไม่รู้ไม่รู้จัก";
}
?>
เงือนไข elseif
ใช้ในกรณีที่นิพจน์มีมากกว่า 1 นิพจน์ขึ้นไป เราจะใช้ elseif เข้ามาตรวจสอบนิพจน์นั้นๆ ดูรูปแบบการใช้งานข้างล่าง
รูปแบบ elseif
if ( นิพจน์ 1 ) {
//โค้ดที่ใช้ในการประมวลผล
//หลังตรวจนิพจน์ 1 แล้ว มีค่าเท่ากับ true
} elseif ( นิพจน์ 2 ) {
//โค้ดที่ใช้ในการประมวลผล
//หลังตรวจนิพจน์ 2 แล้ว มีค่าเท่ากับ true
} else {
//โค้ดที่ใช้ในการประมวลผล ในกรณีนิพจน์ทั้งหมดมีค่าเท่ากับ false
}
ตัวอย่างการใช้งาน elseif
โค๊ด:
<?
$url = "http://www.swry.ac.th";
if ($url == "http://www.datatan.net") {
echo "เว็บไซต์ DATATAN.NET - Web Making ศูนย์กลางข้อมูลเพื่อคนทำเว็บ";
} elseif ($url == "http://www.swry.ac.th") {
echo "เว็บไซต์ โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร์ ระยอง";
} else {
echo "เว็บไซต์อะไรไม่รู้ไม่รู้จัก";
}
?>
2.switch case$url = "http://www.swry.ac.th";
if ($url == "http://www.datatan.net") {
echo "เว็บไซต์ DATATAN.NET - Web Making ศูนย์กลางข้อมูลเพื่อคนทำเว็บ";
} elseif ($url == "http://www.swry.ac.th") {
echo "เว็บไซต์ โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร์ ระยอง";
} else {
echo "เว็บไซต์อะไรไม่รู้ไม่รู้จัก";
}
?>
การทำงานของ switch ในภาษา C นั้นตัว case นั้นต้องเป็นค่า constant หรือค่าคงที่ครับ ดังนั้นการเขียนจะไม่สามารถเขียนได้สั้นอย่างโค๊ดด้านบนครับ ซึ่งถ้าใช้ switch case นั้นจะเป็นประมาณนี้ครับ
main(){
int num;
scanf("%d", &num);
switch(num){
case 110:
case 109:
case 108:
.... //ยาวไปเรื่อยๆครับ
case 101:
{
printf("Upper");
}
break;
case 100:
case 99:
case 98:
... //ยาวไปเรื่อยๆครับ
case 51:
{
printf("High");
}
break;
default:{
printf("Low");
}
break;
}
}
ประมาณนี้ล่ะครับ แต่จะมีปัญหาเรื่องตัว default เนื่องจาก default นั้นจะ handle ในทุกกรณีที่ไม่ตรงกับค่าใดๆใน case ก่อนหนัาทั้งหมด ดังนั้นจะมีปัญหาเรื่อง ถ้าค่าในส่วนของ Upper นั้นไม่ครอบคลุมทั้งหมดก็จะมาเข้า default ทั้งหมดครับ
ซึ่งถ้า condition ของโปรแกรมเป็นดังตัวอย่างที่คุณให้มานั้นใช้ if else นั้นเหมาะสมที่สุดแล้วครับ