Control Structure หรือส่วนควบคุมโครงสร้างของโปรแกรม จะมีด้วยกันหลายฟังก์ชันในบทความนี้จะนำมาเฉพาะส่วนที่สำคัญ คือ if, else, continue, switch...case, break, return, do...while, while และ for
ในการเขียนเงื่อนไขการทำงานนั้นจะมีเครื่องหมาย Comparison Operators หรือตัวดำเนินการการในการเปรียบเทียบ และ Boolean Operators คือ
Comparison Operators
!= (ไม่เท่ากับ)
< (น้อยกว่า)
<= (น้อยกว่าหรือเท่าหับ)
== (เท่ากับ)
> (มากกว่า)
>= (มากกว่าหรือเท่ากับ)
Boolean Operators
! (ตรรกะ not)
&& (ตรรกะ and)
|| (ตรรกะ or)
วิธีการใช้ Arduino IDE
รายการอุปกรณ์
1. if และ if…else
control if และ if…else เป็นตัวควบคุมโปรแกรมที่มีขบวนการตรวจสอบเงื่อนไขความถูกต้องของโปรแกรมก่อนที่จะมีการทำงานภายในเงื่อนไขมีวิธีการเขียนดังนี้
วิธีการเขียน
if(เงื่อนไข){ชุดคำสั่ง}
else if(เงื่อนไข){ชุดคำสั่ง}
else{ชุดคำสั่ง}
ซอร์สโค้ดตัวอย่างที่ 1
ทำการเชื่อมต่อบอร์ด Arduino เข้ากับคอมพิวเตอร์ และคัดลอกซอร์สโค้ดตัวอย่างที่ 1 ไปยังโปรแกรม Arduino IDE จากนั้นทำการอัปโหลดโปรแกรมและเปิดหน้าจอ Serial monitor ขึ้นมาโดยการกด Ctrl + Shift + M สั่งเกตุผลการทดลอง
สั่งเกตุว่าเมื่อค่า x ต่ำกว่า 50 ที่หน้าจอ Serial monitor จะแสดงค่า x แค่ 1 บรรทัด และเมื่อค่า x มากกว่า 50 จะแสดงคำสั่งภายในเงื่อนไข และหน้าจอ Serial monitor ก็แสดงข้อความมา 2 บรรทัด
ซอร์สโค้ดตัวอย่างที่ 2
ทำการอัปโหลดซอร์สโค้ดตัวอย่างที่ 2 และเปิดหน้าจอ Serial monitor ขึ้นมา ทดลองโปรแกรมโดยการพิมพ์ตัวเลขลงในช่องข้อความของ Serial monitor และสังเกตผลการทดลอง และวิเคราะห์การทำงานของโปรแกรม
2. switch…case และ break
control switch…case และ break เป็นตัวควบคุมโปรแกรมที่มีขบวนการตรวจสอบเงื่อนไขความถูกต้องของโปรแกรม เช่นเดียวกับ if และ if…else แต่จะมีข้อจำกัดการใช้งาน เงื่อนไขที่สร้างขึ้นจะเขียนได้เพียงค่าใดค่าหนึ่ง เช่น ‘s’ ‘b’ 100 50 เป็นต้น
ซอร์สโค้ดตัวอย่างที่ 3
ทำการอัปโหลดโปรแกรมและเปิดหน้าจอ Serial monitor ขึ้นมา และพิมพ์ตัวอักษรหรือตัวเลขเข้าไปใน Serial monitor สังเกตุผลการทดลอง
วิธีการเขียน
switch(ตัวแปรที่จะอ่านค่าจำนวนเต็ม หรือตัวอักษร)
case ค่าหรือตัวอักษรที่ต้องการ:
//คำสั่งต่างๆที่ใช้งานเมื่อ case ถูกเรียก
break; //จบการทำงานใน switch หากไม่ได้ใส่ เมื่อทำตามคำสั่งใส case นี้เสร็จแล้วจะไปตรวจสอบเงื่อนไขใน case อื่นๆต่อไป
.
.
.
default:
//เมื่อ case ทุกตัวไม่มีเงื่อนไขที่ถูกต้องโปรแกรมจะเข้ามารันคำสั่งใน default จะไม่เขียนก็ได้
break;
3. return
return หรือคำสั่งย้อนกลับ เมื่อมีการเรียกใช้งานคำสั่ง return โปรแกรมจะกลับไปเริ่มต้นใหม่ทันที
ตัวอย่างซอร์สโค้ดที่ 4
ทำการอัปโหลดซอร์สโค้ดตัวอย่างที่ 4 และเปิดหน้าจอ Serial monitor ขึ้นมา แล้วสังเกตุผลการทดลอง
ในการประยุกต์ใช้งานคำสั่ง return ให้มีประสิทธิภาพต้องใช้งานในเงื่อนไข if else หรือใน ฟังก์ชันย่อย(จะสอนในบทความถัดๆไป)
ตัวอย่างซอร์สโค้ดที่ 5
ทำการอัปโหลดซอร์สโค้ดตัวอย่างที่ 5 และเปิดหน้าจอ Serial monitor ขึ้นมา แล้วสังเกตุผลการทดลอง
4. while, do…while และ for
control while, do…while และ for หรือตัวควบคุมโปรแกรมการวนซ้ำ ทำหน้าทำซ้ำชุดคำสั่งเดิมตามเงื่อนไขที่ถูกเขียนไว้ เช่น การวนซ้ำ 5 ครั้ง 10 ครั้ง 2 ครั้ง 1000 ครั้ง หรือการวนซ้ำตลอดกาล เป็นต้น โดยตัววนซ้ำแบบ while และ for จะมีลักษณะการทำงานที่เหมือนกันคือมีการตรวจสอบเงื่อนไขก่อนที่จะรันชุดคำสั่งที่อยู่ภายในตัวควบคุม แต่ do…while จะรันชุดคำสั่งที่อยู่ภายในตัวควบคุมก่อนการตรวจสอบเงื่อนไข
วิธีการเขียน
for(ค่าตัวแปรเริ่มต้น, เงื่อนไข, การกระทำ เช่น ++ หรือ - -){ชุดคำสั่ง}
while(เงื่อนไข) {ชุดคำสั่ง}
do{ชุดคำสั่ง}
while(เงื่อนไข);
ตัวอย่างซอร์สโค้ดที่ 6 for
ตัวอย่างซอร์สโค้ดที่ 6 while
ตัวอย่างซอร์สโค้ดที่ 6 do…while
เลือกซอร์สโค้ดตัวอย่างตามความต้องการ ทำการอัปโหลดลงบนบอร์ด Arduino และเปิดหน้าจอ Serial monitor ขึ้นมา สังเกตุผลการทดลอง
ผลลัพธ์ทั้ง 3 โปรแกรมจะออกมาเหมือนกัน
แต่หากใช้งาน while และ do…while เพื่อตรวจเช็คเงื่อนไขแบบเดียวกันกับ if เราจะเห็นความแตกต่างระหว่าง while และ do…while
ตัวอย่างซอร์สโค้ดที่ 7 while
ตัวอย่างซอร์สโค้ดที่ 7 do…while
ทดสอบโปรแกรมในตัวอย่างซอร์สโค้ดที่ 7 while ทำการอัปโหลด และเปิดหน้าจอ Serial monitor ขึ้นมาแล้วสังเกตุผลการทดลอง
จะเห็นว่าไม่อะไรเกิดขึ้นภายในหน้าจอ Serial monitor เนื่องจากเงื่อนไขไม่ถูกต้องนั้นเอง ต่อไปให้ทำการอัปโหลดซอร์สโค้ดตัวอย่างที่ 7 do…while และเปิดหน้าจอ Serial monitor ขึ้นมาแล้วสังเกตุผลการทดลอง
จะเห็นว่าที่หน้าจอ Serial monitor มีการแสดงชุดคำสั่งภายใน do เนื่องทั้งที่เงื่อนไขที่เขียนใน while นั้นผิดอยู่ เพราะว่า do…while จะเป็นการทำงานก่อนการตรวจสอบเงื่อนไข
หน้าที่เข้าชม | 7,125,349 ครั้ง |
ผู้ชมทั้งหมด | 2,822,247 ครั้ง |
เปิดร้าน | 15 ก.ย. 2557 |
ร้านค้าอัพเดท | 6 ก.ย. 2568 |