คำสั่ง for | คำสั่ง while | คำสั่ง do-while

———————————————————————————————————————————

สื่อวีดิทัศน์การสอน เรื่อง :: คำสั่งในการวนรอบ do-while ::



———————————————————————————————————————————

3. คำสั่ง do-while 1
       คำสั่ง do-while นั้นมีการทำงานคล้ายกับคำสั่ง while ซึ่งจะมีการตรวจสอบเงื่อนไขการทำงาน
หากเป็นจริงก็จะทำงานตามคำสั่ง หรือชุดคำสั่งที่ได้กำหนดไว้ แต่คำสั่ง do-while นั้นจะทำงานก่อน 1 รอบ แล้วจึงมีการตรวจสอบเงื่อนไข หากเป็นจริงก็จะทำงานต่อในรอบต่อไป หากเป็นเท็จก็จะออกจากการทำงานในรอบการทำงานนั้น แต่อย่างไรก็เกิดการทำงานแล้ว 1 รอบ ดังภาพที่ 3


       รูปแบบการทำงาน


ภาพที่ 3 ผังงาน Flowchart รูปแบบการทำงานของคำสั่ง do-while

       รูปแบบคำสั่ง

do
       statement;
while (condition);

       หรือหากต้องการให้แต่ละการวนรอบนั้น ทำงานมากกว่าหนึ่งคำสั่งก็สามารถทำได้ โดยการใช้เครื่องหมาย { } รอบชุดคำสั่ง (statement) ที่ต้องการดังรูปแบบนี้

do
{
       statement1;
       statement2;
       statement3;
       statementN;
}
while (condition);

       อธิบาย

do
คือ เริ่มต้นคำสั่ง do-while ซึ่งจะตามด้วย 1 ชุดคำสั่งที่ต้องการทำงาน แต่หากต้องการให้ทำงานมากกว่า 1 ชุดคำสั่งจะต้องใช้เครื่องหมาย { } เข้ามาช่วย
while
คือ คำสั่งที่จะต้องเขียนไว้ แล้วจะต้องตามด้วยเงื่อนไขที่ต้องการตรวจสอบ
condition
คือ เงื่อนไขที่ต้องการตรวจสอบ

       ตัวอย่างโปรแกรม
              คุณครูต้องการให้นักเรียนแสดงค่าตัวเลขที่น้อยกว่าหรือเท่ากับ 10 แต่ถ้าตัวเลขมากกว่า 10
       ให้แสดงข้อความ End program บนจอภาพ จึงให้นักเรียนเขียนโปรแกรมเพื่อแสดงผลข้อมูล ดังนี้
              “ให้นักเรียนเขียนโปรแกรมโดยใช้คำสั่ง do-while เริ่มการวนรอบด้วยคำสั่ง do แสดงค่าของ
       ตัวแปร a ชนิด Integer แล้วขึ้นบรรทัดใหม่ และหลังจากคำสั่ง while  คือ  a  จะต้องน้อยกว่าหรือ
       เท่ากับ 10 ถ้าผลลัพธ์ออกมาเป็นจริงก็จะกลับไปทำงานตามที่คำสั่ง do กำหนดไว้ แต่หากเป็นเท็จก็
       จะออกจากการทำงานวนรอบนี้ และจะแสดงข้อความ End program บนจอภาพ”


       วิเคราะห์ปัญหา (Analysis)
              สิ่งที่โจทย์กำหนด :: กำหนดตัวแปร a=1 โดยใช้ Format Code ชนิด Integer กำหนดค่า
       ตัวแปร a เท่ากับ 11 เมื่อเริ่มการวนรอบด้วยคำสั่ง do และกำหนดเงื่อนไขหลังคำสั่ง while คือ a
       จะต้องน้อยกว่าหรือเท่ากับ 10   ถ้าผลลัพธ์ออกมาเป็นจริงก็จะกลับไปทำงานตามที่คำสั่ง do กำหนด
       ไว้ แต่หากเป็นเท็จก็จะออกจากการทำงานวนรอบนี้ ไปทำงานยังคำสั่งต่อไปของโปรแกรม
              สิ่งที่โจทย์ต้องการ :: แสดงค่าของตัวแปร a และแสดงข้อความ End program บนจอภาพ

        การแก้ปัญหา (Problem Solving) ตามแนวทางการคิดเชิงคำนวณ โดยการคิดแบบ "ขั้นตอนวิธี" (Algorithm) ดังนี้

Pseudo Code
Flowchart
Algorithm do-while
  1. Start
  2. int a=1
  3. do
    3.1
Print a
    3.2 a=11;
  4. while (a<=10)
    4.1. Print End program
  5. End


       เขียนโปรแกรม (Coding)  

บรรทัดที่
โปรแกรม
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int a;
int main( )
{
a=1;
do
{
     printf("%d \n",a);
     a=11;
}
     while (a<=10);
     printf("End program");
}

       อธิบายโปรแกรม

บรรทัดที่ 1
เรียกใช้งานไลบรารี stdio.h
บรรทัดที่ 2
กำหนดตัวแปร a ให้เป็นแบบ Integer
บรรทัดที่ 3
กำหนดคำสั่ง int main( ) เริ่มการทำงาน
บรรทัดที่ 4
ใช้เครื่องหมาย { เพื่อบอกจุดเริ่มต้นของคำสั่ง int main( )
บรรทัดที่ 5
กำหนดค่าตัวแปร a เท่ากับ 1
บรรทัดที่ 6
เริ่มการวนรอบด้วยคำสั่ง do
บรรทัดที่ 7
เริ่มการทำงานตามคำสั่ง do ด้วยเครื่องหมาย { ในรอบแรก
บรรทัดที่ 8
แสดงค่าของตัวแปร a แล้วขึ้นบรรทัดใหม่
บรรทัดที่ 9
กำหนดค่าตัวแปร a เท่ากับ 11
บรรทัดที่ 10
สิ้นสุดการทำงานการวนรอบของคำสั่ง do
บรรทัดที่ 11
กำหนดเงื่อนไขหลังคำสั่ง while คือ a จะต้องน้อยกว่าหรือเท่ากับ 10 ถ้าผลลัพธ์ออกมาเป็นจริงก็จะกลับไปทำงานตามที่คำสั่ง do กำหนดไว้ แต่หากเป็นเท็จก็จะออกจากการทำงานวนรอบนี้
ไปทำงานยังคำสั่งต่อไปของโปรแกรม
บรรทัดที่ 12
แสดงข้อความ End program บนจอภาพ
บรรทัดที่ 13
สิ้นสุดการทำงานของ int main( ) ด้วยเครื่องหมาย }

       ผลลัพธ์บนจอภาพ
              โปรแกรมจะแสดงค่าของตัวแปร a และแสดงข้อความ End program บนจอภาพ

1
End program

         การทดสอบการทำงานของโปรแกรมจากเว็บ https://repl.it/languages/c
                  คลิกเครื่องหมาย  เพื่อดูผลผลลัพธ์การทำงานของโปรแกรมด้านล่าง
        (ลิงค์สำรอง https://repl.it/repls/HandyCuddlyNetworking)


——————————————————————————————————————————