The Structured Program Theorem
คนที่เล่นดนตรีเป็น จะรู้ว่าคอร์ดที่ใช้บ่อยมีเพียงแค่ประมาณ 10 คอร์ดเท่านั้นเอง
Coding ก็คล้ายกันครับ แถมยังง่ายกว่าการเล่นดนตรีด้วยซ้ำ
เพราะมีแค่ 3 โครงสร้างเท่านั้น
บทความนี้จะอธิบายเรื่องสำคัญที่ควรรู้ในการเขียน Code
ภาษาคอมพิวเตอร์อย่าง C, Java, JavaScript และอีกหลายภาษา
มีโครงสร้างสำคัญอยู่เพียง 3 อย่าง ไม่ว่าโค้ดจะสลับซับซ้อนขนาดไหน
ก็สามารถเขียนให้อยู่ในรูปโครงสร้าง 3 อย่างนี้ได้เสมอ
ทฤษฎีนี้เรียกว่า Structured Program Theorem
1. โครงสร้างแบบ Sequence
โครงสร้างนี้ไม่มีอะไรมาก เป็นการนำคำสั่งมาเขียนต่อกัน
ทำงานตามลำดับบนลงล่าง ซ้ายไปขวา บางภาษาแยกแต่ละคำสั่งโดยใช้เครื่องหมาย
; หรือ Semicolon บางภาษาใช้การขึ้นบรรทัดใหม่แทน
ในภาษา Java ถ้าต้องการสั่งให้หุ่นยนต์เดินหน้า 2 ก้าว
แล้วเลี้ยวซ้าย เดินไปอีก 1 ก้าว ก็ใช้คำสั่งตรงมาตรงไป
forward(); // เดินหน้า
forward(); // เดินหน้า
turnLeft(); // เลี้ยวซ้าย
forward(); // เดินหน้า
2. โครงสร้างแบบ Iteration
จากหุ่นยนต์ตัวเดิมถ้าต้องการสั่งให้เดินหน้า 100 ก้าว
จะใช้คำสั่ง forward() ไป 100 ครั้งก็ใช้ได้ แต่จะยาวไปหน่อย
ต้องใช้โครงสร้างแบบที่ 2 มาช่วย คือ Iteration
เริ่มต้นให้ i = 0 จากนั้นให้ทำไปเรื่อยๆ ตราบที่ i < 100 หรือ
ภาษา Java คือ while (i < 100)
int i = 0;
while (i < 100) {
forward();
i = i + 1;
}
3. โครงสร้างแบบ Condition
โครงสร้างนี้จะทำงานก็ต่อเมื่อเงื่อนไขเป็นจริง
ตัวอย่างโค้ดให้หุ่นยนต์เดินเป็นจตุรัสขนาด 25 ก้าวตามเข็มนาฬิกา
หลักการคือให้หุ่นยนต์เดินหน้าไปเรื่อยๆ เมื่อ i หารด้วย 25 ลงตัวก็ให้เลี้ยวขวา
เขียนเป็นภาษา Java คือ if (i % 25 == 0)
int i = 1;
while (i <= 100) {
forward();
if (i % 25 == 0) {
turnRight();
}
i = i + 1;
}
ขอแถมอีกอย่างนึงเป็นโครงสร้างที่ทำให้เขียนโค้ดได้สะดวกยิ่งขึ้นนั่นคือ
Subroutine หรือ Function หรือ Method แล้วแต่จะเรียกในแต่ละภาษา
ตัวอย่างในภาษา Java คือ
int sum(int n) {
int sum = 0;
int i = 0;
while (i <= n) {
if (i % 2 == 0) {
sum += i;
}
i = i + 1;
}
return sum;
}
ตัวอย่างข้างบนนี้คือ Method ชื่อ sum สำหรับหาผลบวกเลขคู่ตั้งแต่ 1 ถึง N
การเรียกคำสั่ง sum(100) จะได้ผลบวกเลขคู่ตั้งแต่ 1-100 สังเกตว่ามีการใช้โครงสร้างทั้ง 3 อย่าง
คือ Sequence, Iteration และ Condition รวมทั้งใช้ Method เพื่อให้เขียนโค้ดสะดวกยิ่งขึ้น
ในภาษาอย่าง Java หรือ C# มี Method อยู่นับแสน ไม่มีใครรู้ทุกอย่าง
คนทั่วไปรู้แค่ 10% ก็สามารถสร้างผลงานดีๆได้แล้ว มีหลายคนที่รู้ภาษา C ถึง 100%
แต่เวลาใช้จริงใช้แค่ 50% เพราะอีก 50% นั้นแทบไม่มีใครใช้ อ่านบทความนี้จบ
ทุกคนก็พร้อมแล้วที่จะสร้างผลงานระดับโลก ไม่แน่เหมือนกัน Mark Zuckerberg
คนต่อไปอาจเป็นคุณก็ได้