หน้าหลัก
แนะนำรายวิชา
แบบทดสอบวัดผลสัมฤทธิ์ก่อนเรียน
บทที่ 1 ภาษาคอมพิวเตอร์
บทที่ 2 แนวคิดการโปรแกรม
บทที่ 3 รหัสเทียม
บทที่ 4 ผังงาน
บทที่ 5 โครงสร้างภาษาซี
บทที่ 6 ติดตั้งโปรแกรม Dev-c++
บทที่ 7 ตัวแปรภาษาซี
บทที่ 8 ตัวดำเนินการภาษาซี
บทที่ 9 การแสดงผล
บทที่10 การรับข้อมูล
บทที่ 11 การเลือกทำตามเงื่อนไข
บทที่ 12 คำสั่งวนซ้ำ
แบบทดสอบผลสัมฤทธิ์หลังเรียน
แหล่งศึกษาเพิ่มเติม

 

การวนลูปทำงานอย่างน้อยหนึ่งครั้งด้วยคำสั่ง do...while

         คำสั่งวนซ้ำ do...while เป็นคำสั่งวนซ้ำการทำงานเดิม ๆ โดยโปรแกรมจะทำงานชุดคำสั่งภายใน Loop ก่อน 1 รอบ

จึงตรวจสอบเงื่อนไขที่กำหนด ถ้าเงื่อนไขเป็นจริง ให้กลับไปทำงานชุดคำสั่งภายใน Loop อีกครั้ง และตรวจสอบเงื่อนไขที่กำหนด

อีกครั้ง ถ้าเงื่อนไขเป็นเท็จ โปรแกรมจะออกจาก Loop การทำงานไปทำงานที่คำสั่งถัดไปทันที

คำสั่ง do...while ในภาษาซี มีรูปแบบคำสั่งดังนี้

 

ตัวอย่าง รับค่าจากแป้นพิมพ์แล้วเรียงลำดับจากหลังไปหน้า

 

บรรทัดที่ 1 คอมไพเลอร์ทำการค้นหาเฮดเดอร์ไฟล์ stdio.h จากไดเรกทอรี่
บรรทัดที่ 2 คอมไพเลอร์ทำการค้นหาเฮดเดอร์ไฟล์ conio.h จากไดเรกทอรี่
บรรทัดที่ 6 ประกาศตัวแปร number ชนิด long
บรรทัดที่ 7 ประกาศตัวแปร id ชนิด int
บรรทัดที่ 8 แสดงคำว่า Input number for backword ผ่านทางหน้าจอ
บรรทัดที่ 9 รับค่าจากคีย์บอร์ดมาเก็บไว้ที่ตัวแปร number
บรรทัดที่ 12 แสดงคำว่า This backword number is ผ่านทางหน้าจอ
บรรทัดที่ 14-17

ทำงานชุดคำสั่งภายใน Loop ก่อน 1 รอบ
จึงตรวจสอบเงื่อนไขที่กำหนด ถ้าเงื่อนไขเป็นจริง ให้กลับไปทำงานชุดคำสั่งภายใน Loop อีกครั้ง

บรรทัดที่ 19 เงื่อนไขเป็นเท็จ โปรแกรมจะออกจาก Loop (ตรวจสอบได้ว่า number>0)
บรรทัดที่ 21 จบโปรแกรม

 

ผลลัพธ์

ตัวอย่าง แสดงตัวเลข 1 - 10 ผ่านทางหน้าจอ

รรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง
1 #include <stdio.h> ห้แฟ้ม stdio.h ส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้
2 int main() { ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม)
3 int i = 10; ประกาศตัวแปร i เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นเป็น 10
4 do { ขอบเขตให้เริ่มทำ คำสั่งที่ต้องการทำซ้ำ (มีคำสั่งย่อยมากกว่า 1 คำสั่ง ต้องเขียนคำสั่งภายใต้เครื่องหมาย { })
5 printf("%d\n" , i); แสดงข้อความ "%d" โดยแสดงค่า i ใน %d เสร็จแล้วขึ้นบรรทัดใหม่
6 i--; ลดค่าตัวนับ i ครั้งละ 1 (ความหมายเดียวกับคำสั่ง i = i - 1 หรือ i -= 1)
7 } while (i >= 1);  ตรวจสอบว่า ค่า i มากกว่าหรือเท่ากับ 1 จริงหรือไม่ ถ้าจริง วนกลับไปทำคำสั่งบรรทัดที่ 4 แล้วเริ่มทำ คำสั่งที่ต้องการทำซ้ำอีกครั้ง ถ้าเท็จ สิ้นสุดการวนซ้ำด้วยคำสั่ง do - while และไปทำคำสั่งบรรทัดที่ 8
8 return 0; คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์
9 } สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม)