การเขียนโปรแกรมแบบโครงสร้างแบบทำซ้ำ do while

          การเขียนโปรแกรมเพื่อนำไปใช้งานด้านต่างๆ ไม่ว่าจะเป็นงานด้านธุรกิจ วิทยาศาสตร์ คณิตศาสตร์ และอื่นๆ จะต้องอาศัยความรู้และประสบการณ์ในการเขียนโปรแกรม ซึ่งแต่ละคนมีความเชี่ยวชาญและความชำนาญในการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ที่แตกต่างกัน การที่จะเป็นโปรแกรมเมอร์มืออาชีพได้จะต้องอาศัยใจรักที่อยากจะพัฒนาและฝึกฝนในการเขียนโปรแกรม หากต้องการเป็นโปรแกรมเมอร์จึงควรเริ่มจากการศึกษาหลักการพื้นฐานของวิธีการเขียนโปรแกรมให้เข้าใจ เพราะการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ต่างๆ มีหลักการคล้ายกัน สิ่งที่แตกต่างกันของแต่ละภาษาก็คือ รูปแบบคำสั่งที่ใช้ในการรับข้อมูล การประมวลผล และการแสดงผล ถ้าสามารถเขียนโปรแกรมด้วยภาษาหนึ่งได้แล้ว การเขียนโปรแกรมในภาษาอื่นจึงไม่ใช่เรื่องยาก เพียงแต่จะต้องศึกษารูปแบบการเขียนของภาษานั้นเพิ่มเติม การหัดเขียนโปรแกรมเพื่อนำไปใช้งานในด้านต่างๆ เช่น การจัดการฐานข้อมูล การวิเคราะห์ข้อมูล การแก้ปัญหาในวิชาคณิตศาสตร์ วิทยาศาสตร์ และการสร้างชิ้นงานจะช่วยให้มีความรู้และทักษะในการเขียนโปรแกรมมากขึ้น

  1. คำสั่งdo..while

          การวนซ้ำ (Loop) หมายถึง กลุ่มของคำสั่งที่ต้องการประมวลผลซ้ำหลายครั้ง ทั้งนี้ขึ้นอยู่กับเงื่อนไขที่กำหนดไว้ โปรแกรมภาษา C มีคำสั่งวนซ้ำอยู่ 3 คำสั่ง ได้แก่ คำสั่ง while, คำสั่ง do … while และคำสั่ง for

          คำสั่ง do..while จะมีการทำงานคล้ายกับ while แต่ต่างกันตรงที่ คำสั่ง do..whileจะตรวจสอบเงื่อนไขทีหลังนั่นคือจะมีการทำคำสั่งในลูปอย่างน้อย 1 ครั้งเสมอเมื่อทำคำสั่งในลูปแล้วจึงตรวจสอบเงื่อนไขทีหลัง

รูปแบบของคำสั่ง do..while ได้แก่

            do
        {       statement1;
                statement2;
                …
        } while(condition);

โดยที่      condition          คือ    เงื่อนไขที่ถูกกำหนดขึ้น
                statement        คือ    คำสั่งที่ต้องการให้โปรแกรมประมวลผล

รูปที่ 2 ผังงานแสดงการทำงานของโครงสร้างแบบทำซ้ำ do..while

ตัวอย่างที่ 1 แสดงเลขจำนวนเต็มที่เรียงต่อกันไปโดยใช้ do..while

main()
   {      int digit = 0;
  do
  {  printf(“%d\n”, digit);
      digit++;
  } while(digit <= 9);
    }

          จากตัวอย่าง โปรแกรมจะทำการประมวลผลคำสั่งภายใต้คำสั่ง do..whileภายในเครื่องหมาย {} ก่อนหนึ่งครั้ง แล้วจึงมาตรวจสอบเงื่อนไขว่าเป็นจริงหรือไม่ ถ้าเป็นจริงก็จะวนกลับไปทำคำสั่งอีกครั้ง ทำอย่างนี้ไปจนกว่าการตรวจสอบเงื่อนไขจะเป็นเท็จ จึงจะจบการทำงาน

ตัวอย่างที่ 2 การคำนวณค่าแฟคทอเรียล โดยใช้ do..while

main()
   {      int n, fac = 1;
  printf(“Enter positive number”);
  scanf(“%d”,&n);
  do
  {  fac = fac * n;
      n = n-1;
  } while(n>=1);
  printf(“%d”,fac);  
   }

          จากตัวอย่าง โปรแกรมจะทำการประมวลผลคำสั่ง  fac = fac * n; และ n = n-1; ก่อน แล้วจึงมาตรวจสอบเงื่อนไขว่าเป็นจริงหรือไม่ ถ้าเป็นจริงก็จะวนกลับไปทำคำสั่ง (statement) ที่อยู่ในลูปอีกครั้ง ทำอย่างนี้ไปจนกว่าการตรวจสอบเงื่อนไขจะเป็นเท็จ จึงจะจบการทำงาน

ตัวอย่างที่ 3

#include<stdio.h>
#include<conio.h>
main()
{     float x;
      do
      {   printf(“Input a positive value: “);
scanf(“%f”, &x);
      } while(x < 0);
printf(“Your positive value is %.2f”, x);
getch();
}



เอกสารอ้างอิง

น้อย สุวรรณมณี และคณะ.(2553). หนังสือเรียนแม็ค การงานอาชีพและเทคโนโลยีชั้นมัธยมศึกษาปีที่ 4-6 เล่มที่ 3. (หน้า 91).กรุงเทพฯ : แม็ค.

สถาบันพัฒนาคุณภาพวิชาการ (พว.)(2558). คู่มือครูหนังสือเรียน เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6 เล่มที่ 3 (หน้า 88-89).กรุงเทพฯ :

คุณภาพวิชาการ (พว.).สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) กระทรวงศึกษาธิการ(2553). เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6(หน้า 204-210).กรุงเทพฯ :

สกสค.ลาดพร้าว.ฝ่ายตำราวิชาการคอมพิวเตอร์. (2553). การเขียนโปรแกรมคอมพิวเตอร์ (ภาษาซี)(หน้า 160-163).

กรุงเทพฯ : ซีเอ็ดยูเคชั่น.อาณัติ  รัตนถิรกุล. (2553).สร้างระบบ e-Learning ด้วย moodle.กรุงเทพฯ : ซีเอ็ดยูเคชั่น.

มาริสา สินยอด และ วรรษมล  ดวงตานนท์. การวนซ้ำโดยใช้คำสั่ง do-while. http://basic-c.weebly.com/358536343619362336093619362936 103595365736353604365736233618358836353626363336563591-do-while.html.  [ระบบออนไลน์]. (11ธันวาคม2557).