C-Programming บทที่ 8 การทำซ้ำ C Programming
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming มีอะไรบ้างในบทนี้ C Programming 4.1 ทำไมถึงต้องมีการทำซ้ำ 4.2 คำสั่งที่ใช้ในการทำซ้ำ การทำซ้ำ หมายถึง การสั่งให้โปรแกรมทำงานอย่างใดอย่างหนึ่งวนไปวนมา จนกระทั่งครบตามจำนวนที่ต้องการหรือตรงตามเงื่อนไขที่เรากำหนดเอาไว้ การทำซ้ำเกิดขึ้นบ่อยๆ ในชีวิตประจำวัน เช่น การวนรับรหัสผ่าน จนกว่าจะใส่รหัสผ่านถูกต้อง หรือไม่เกิน 3 ครั้ง, การวนรับรหัสบัตรเติมเงินของบริการโทรศัพท์ ไม่เกิน 3 ครั้ง จนกว่าจะใส่รหัสบัตรเติมเงินถูกต้อง เป็นต้น จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming Type C Programming การทำซ้ำมี 2 ลักษณะ คือ แบบมีจำนวนรอบที่แน่นอน เช่น ต้องการให้พิมพ์ตัวอักษร a จำนวน 1000 ครั้งขึ้นบนหน้าจอ แบบนี้จะใช้ คำสั่ง for แบบใช้เงื่อนไขเป็นตัวตัดสินใจว่าจะทำซ้ำต่อไปหรือไม่ ต้องการให้โปรแกรมทำไปเรื่อยๆ ในขณะที่เงื่อนไขยังเป็นจริง อยู่ เช่น ให้รับรหัสผ่านไปเรื่อยๆ จนกว่าจะใส่ถูก ซึ่งจะไม่มีจำนวนรอบที่แน่นอนตายตัว ลักษณะนี้จะมี 2 คำสั่งคือ do..while และ while จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming 4.2 for C Programming ใช้ในกรณีที่เราต้องการทำซ้ำโดยทราบจำนวนครั้งที่แน่นอน เช่น 20 ครั้ง 30 ครั้ง การใช้งานจะกำหนดลงไปเลยว่าต้องการให้ทำกี่ครั้ง และจะต้องสร้างตัวแปร ขึ้นมาเป็นตัวนับ (counter) โดยมากจะกำหนดให้เป็นตัวแปรแบบจำนวนเต็ม (integer) ตัวนับจะเป็นตัวคอยบอกว่าครบตามจำนวนที่ต้องการรึยัง ถ้ายังไม่ครบก็จะวนไปเรื่อยๆ จนกว่าจะครบ จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming 4.2 รูปแบบ ของ for C Programming for(ค่าเริ่มต้นของตัวนับ เช่น 0; เปรียบเทียบตัวนับว่ายังอยู่ในช่วงนี้หรือไม่; จำนวนนับเพิ่มทีละเท่าไร หรือลดทีละเท่าไร) { คำสั่งที่ต้องการให้ทำ } จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming 4.2 โปรแกรม for1.c C Programming #include<stdio.h> Void main() { int count; printf(“Begin\n”); for(count=0;count<10;count++) printf(“Hello\n”); printf(“End\n”); } เริ่มต้นให้ count=0 ทำในขณะที่ count<10 เพิ่มค่า count ทีละ 1 count=count+1 จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming 4.3 ผลรันโปรแกรม C Programming Begin Hello End คำว่า Hello จะถูกแสดงทั้งหมด 10 ครั้ง โดยที่ตัวแปร count คือตัวแปรที่ใช้เป็นตัวนับ เราให้ค่าเริ่มต้นเป็น 1 และจะเพิ่มค่าขึ้นทีละ 1 ไปเรื่อยๆ ในขณะที่ตัวแปร count ยังน้อยกว่า 10 แต่ถ้าตัวแปร count เท่ากับ 10 เมื่อไร่ เงื่อนไขจะเป็นเท็จ โปรแกรมก็จะหลุดออกจากคำสั่ง for ทันที จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming โปรแกรม สูตรคูณ C Programming #include<stdio.h> Void main() { int mother=6; int count; printf(“Begin\n”); for (count =1;count<=12;count++) pintf(“%d x %d = %d\n”,mother,count,mother *count); } printf(“End\n”); จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming while และ do..while C Programming คำสั่ง while และ do..while จะต่างจากคำสั่ง forเล็กน้อยตรงที่การทำซ้ำแบบนี้ ไม่จำเป็นต้องบอกถึงจำนวนรอบของการทำซ้ำ แต่ละทำซ้ำไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ รูปแบบคำสั่ง while คือ While (เงื่อนไข) { คำสั่งหรือกลุ่มคำสั่งที่ต้องการให้ทำซ้ำ } จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming while.c C Programming #include<stdio.h> Void main() { int count=1; while(count<=10) printf(“Hello %d \n”,count); count++; } จากตัวอย่างเรากำหนดให้ count มีค่า เป็น 1 จากนั้นใช้คำสั่ง while ตรวจดูค่าของ count ว่ายังน้อยกว่าหรือเท่ากับ 10 หรือไม่ ถ้าใช่ก็ยังทำคำสั่งภายใน{} ต่อไป และเพิ่มค่า count ทีละ 1 ไปเรื่อยๆ จนกว่าค่า count จะมากกว่า 10 ทำให้เงื่อนไขเป็นเท็จก็จะหลุดจากลูป while จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555
จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555 C-Programming dowhile.c C Programming #include<stdio.h> void main() { char out; do printf(“\n Do you what to exit ?[Y]es or [N]o :”); scanf(“%c”,&out); }while(out!=‘y’); } ก่อนเข้าสู่การตรวจสอบเงื่อนไข(out!=‘y’) ครั้งแรกนั้นจะมีการทำคำสั่งใน {} ก่อน ดังนั้น do..while จึงทำคำสั่งภายใน {} อย่างน้อย 1 ครั้งเสมอ และถ้าตรวจสอบแล้วเงื่อนไขยังจริงอยู่ก็จะวนมาทำคำสั่งภายใน {} อีกครั้ง จันทร์ดารา สุขสาม @Rmuti Surin Campus : 2555