การวนรอบซ้ำด้วยคำสั่ง While
การทำซ้ำด้วยคำสั่ง while
การทำซ้ำด้วยคำสั่ง while เป็นคำสั่งทำซ้ำแบบหนึ่งในภาษาซี ที่นิยมใช้ในกรณีที่ใช้ตรวจสอบเงื่อนไขว่าเป็นจริงก็จะทำซ้ำ แต่ถ้าเงื่อนไขเป็นเท็จก็จะหลุดออกจาการทำซ้ำ ซึ่งเงื่อนไขที่ตรวจสอบนี้อาจจะใช้ในกรณีที่รู้จำนวนรอบแน่นอนเช่น ตั้งแต่ a=1 ถึง a=10 หรือไม่รู้จำนวนรอบแน่นอน เช่นทำซ้ำในขณะที่ตัวแปร answer = 'y' ลักษณะเด่นอย่างหนึ่งของคำสั่ง while คือ จะตรวจสอบเงื่อนไขก่อนว่าเป็นจริงหรือเท็จ ซึ่งในการตรวจสอบครั้งแรก ถ้าเงื่อนไขตรวจสอบเป็นเท็จ ก็จะไม่เข้าไปทำในวนรอบของการทำซ้ำเลยก็ได้ แต่ในทำนองเดียวกัน ถ้าตัวตรวจสอบเงื่อนไขเป็นจริงตลอด ก็จะทำซ้ำไปไม่สิ้นสุดก็ได้ ซึ่งผู้เขียนโปรแกรมจะต้องระมัดระวัง จะต้องเขียนโปรแกรมให้มีโอกาสออกจากการวนรอบทำซ้ำให้ได้
การทำซ้ำด้วยคำสั่ง while เป็นคำสั่งทำซ้ำแบบหนึ่งในภาษาซี ที่นิยมใช้ในกรณีที่ใช้ตรวจสอบเงื่อนไขว่าเป็นจริงก็จะทำซ้ำ แต่ถ้าเงื่อนไขเป็นเท็จก็จะหลุดออกจาการทำซ้ำ ซึ่งเงื่อนไขที่ตรวจสอบนี้อาจจะใช้ในกรณีที่รู้จำนวนรอบแน่นอนเช่น ตั้งแต่ a=1 ถึง a=10 หรือไม่รู้จำนวนรอบแน่นอน เช่นทำซ้ำในขณะที่ตัวแปร answer = 'y' ลักษณะเด่นอย่างหนึ่งของคำสั่ง while คือ จะตรวจสอบเงื่อนไขก่อนว่าเป็นจริงหรือเท็จ ซึ่งในการตรวจสอบครั้งแรก ถ้าเงื่อนไขตรวจสอบเป็นเท็จ ก็จะไม่เข้าไปทำในวนรอบของการทำซ้ำเลยก็ได้ แต่ในทำนองเดียวกัน ถ้าตัวตรวจสอบเงื่อนไขเป็นจริงตลอด ก็จะทำซ้ำไปไม่สิ้นสุดก็ได้ ซึ่งผู้เขียนโปรแกรมจะต้องระมัดระวัง จะต้องเขียนโปรแกรมให้มีโอกาสออกจากการวนรอบทำซ้ำให้ได้
รูปแบบคำสั่ง while
โดยที่
(เงื่อนไขตรวจสอบ) จะต้องเป็นประโยคหรือนิพจน์ ที่ให้ค่าความจริง (ไม่ใช่ 0) หรือให้ค่าความเท็จ (เป็น 0)
ถ้าเงื่อนไขตรวจสอบเป็นเท็จก็จะออกจากการวนรอบทำซ้ำ แต่ถ้าเป็นจริง ก็จะเข้าไปทำซ้ำในวงรอบ คือคำสั่งทุกคำสั่งที่อยู่ในเครื่องหมาย { และ } แล้วกลับไปตรวจสอบเงื่อนไขที่คำสั่ง while อีกครั้ง ซึ่งเขียนเป็นผังงานได้ดังนี้
ผังงานแสดงทิศทางการใช้คำสั่ง while
(เงื่อนไขตรวจสอบ) จะต้องเป็นประโยคหรือนิพจน์ ที่ให้ค่าความจริง (ไม่ใช่ 0) หรือให้ค่าความเท็จ (เป็น 0)
ถ้าเงื่อนไขตรวจสอบเป็นเท็จก็จะออกจากการวนรอบทำซ้ำ แต่ถ้าเป็นจริง ก็จะเข้าไปทำซ้ำในวงรอบ คือคำสั่งทุกคำสั่งที่อยู่ในเครื่องหมาย { และ } แล้วกลับไปตรวจสอบเงื่อนไขที่คำสั่ง while อีกครั้ง ซึ่งเขียนเป็นผังงานได้ดังนี้
ผังงานแสดงทิศทางการใช้คำสั่ง while
ตัวอย่าง
จงเขียนโปรแกรมเพื่อแสดงรหัสของตัวอักขระตั้งแต่ 'A' ถึง 'Z' ว่าตรงกับเลขใดในตาราง ASCIIผังงานแสดงการแก้ปัญหาโจทย์
จากผังงานนำมาเขียนเป็นโค้ดได้ดังนี้
#include <conio.h>
int main() { char ch='A'; while (ch<='Z') { printf("%c = %d\t",ch,ch); ch++; } getch(); return 0; } |
// เริ่ม block ของฟังก์ชัน main
// ประกาศตัวแปร ch เป็นชนิด char // ทำซ้ำในขณะที่ ch น้อยกว่าหรือเท่ากับ 'Z' // เริ่ม block ของคำสั่ง while // แสดงค่าของตัวแปร ch ในรูปของ char และ int // เพิ่มค่าของตัวแปร ch ขึ้นอีก1 คือจาก 'A' เป็น 'B' // จบ block ของคำสั่ง while // รอการกดแป้นใด ๆ // โปรแกรมทำงานถูกต้องสมบูรณ์ // จบ block ของฟังก์ชัน main |
ผลที่ได้จากการ Run