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