Control Statment คือ อะไร ถ้าจะอธิบายให้เข้าใจง่ายสั้นๆ ก็คือ คำสั่งในการควบคุมการทำงานของโปรแกรม
สำหรับผมแล้วตัวนี้ผมถือว่าเป็นหัวใจหลักๆ ในการเขียนโปรแกรมทุกภาษา เพราะว่าเป็นส่วนเอาไว้ควบคุมทุกๆ อย่างในโปรแกรมของเรา ไม่ว่าจะเป็นข้อมูล, ตรวจสอบข้อมูล, โต้ตอบกับยูซเซอร์ หรือแม้กระทั้งจัดการกับข้อผิดพลาดที่เกิดขึ้นระหว่าการทำงาน
ภาษาในการเขียนโปรแกรมทุกภาษาจะมี Control Statment เหมือนกัน ถ้าเข้าใจหลักการแล้ว ก็จะสามารถนำไปใช้ได้กับอีกหลายๆ ภาษาเลยทีเดียวครับ จะแตกต่างกันก็แค่ syntax (คือ ไวยากรณ์ หรือ รูปแบบของคำสั่ง) ที่จะเป็นลักษณะเฉพาะของแต่ละภาษา อธิบายแล้วอาจจะงง งั้นเรามาดู Control Statment ตัวแรกกันเลย
if...else
ใช้ในการเปรียบเทียบเงื่อนไขเพื่อเลือกทำงานอย่างใดอย่างหนึ่ง ซึ่งจะต้องมีการใช้ Operator ที่เราได้กล่าวไปแล้วในบทความที่แล้วมาช่วยในการทำงานครับ มาดูรูปแบบคำสั่งกันเลยครับ
$a = 10;
if($a > 5){
echo "a > 5";
}
จากโค้ดเรากำหนดค่า $a=10 บรรทัดต่อมาทำการตรวจสอบค่า $a ว่ามากกว่า 5 หรือเปล่า ถ้าเงื่อนไขเป็นจริง คือมากกว่าก็ให้เข้าไปทำงานที่คำสั่งภายใน {...} ซึ่งผลของการรันโค้ดนี้ก็คือจะแสดงข้อความ a > 5 ออกมา แล้วถ้าเกิดว่า เงื่อนไขเป็นเท็จ คือ $a น้อยกว่า 5 ละ จะเกิดไรขึ้น คำตอบคือไม่มีอะไรเกิดขึ้น โปรแกรมก็จะข้ามคำสั่งที่อยู่ภายใน {...} ไปทำคำสั่งอื่นต่อไป
จากตัวอย่างจะเห็นว่าไม่มีคำสั่งมารองรับกรณีที่ $a น้อยกว่า 5 เราจึงเขียนคำสั่งเพิ่มเป็น
$a = 10;
if($a > 5){
echo "a > 5";
}else{
echo "a < 5";
}
เราได้เพิ่มคำสั่ง else เข้ามาสำหรับกรณีที่เงือนไขเป็นเท็จ คือ แสดงข้อความว่า a < 5
ลองดูอีกสักตัวอย่างนะครับ ดูกันง่ายๆ เลย $name เก็บชื่อ John เราจะตรวจสอบว่า $name เก็บค่าอะไร โดยมีการตรวจสอบหลายครั้ง โดยใช้ if...else ลองดูไล่ดูโค้ดนะครับ
$name = "John";
if($name == "Tom"){
echo "You are John";
}else if($name == "Alex"){
echo "You are Alex";
}if($name == "John"){//------------ตรงนี้
echo "You are John";
}else{
echo "Who are you ?";
}
โดยระบบจะตรวจสอบไปเรื่อยๆ จนกว่าจะถูกต้องคือตรงที่ผม comment ไว้ แต่ถ้าไม่ตรงกันค่าไหนก็จะแสดงคำว่า "Who are you ?"
switch
ถ้าดูจากโค้ดตัวอย่างด้านบนการใช้ if...else ถ้ามีการตรวจสอบหลายเงื่อนไขจะทำให้โค้ดดูอยากพอสมควร ทำให้จึงต้องมีคำสั่ง switch ดังตัวอย่างโค้ดด่านล่างครับ
$name = "John";
switch($name){
case "Tom" :
echo "You are Tom";
break;
case "Alex" :
echo "You are Alex";
break;
case "John" :
echo "You are John";
break;
default :
echo "Who are You ?";
break;
}
เราจะใส่ตัวแปรหรือค่าที่ต้องการตรวจสอบไว้ที่ switch($name) และจะนำค่าไปตรวจสอบที่คำสั่ง case "Tom" : ถ้าค่าถูกต้องก็จะเข้าไปทำงานหลังเครื่องหมาย : ไปเรื่อยๆตามลำดับจนกว่าจะเจอคำสั่ง break; แต่ถ้าค่าไม่ถูกก็จะไปตรวจสอบกับ case ลำดับถัดไป แต่ถ้าหาตรวจสอบจะครบทุก case แล้วยังไม่ถูกต้องก็จะเข้าทำงานในส่วนของ default ครับ
หวังว่าคงจะพอเป็นแนวทางสำหรับคนที่ต้องการหัดเขียนโปรแกรมนะครับ เจอกันบทความหน้าครับ บ้ายๆๆ