CE 112 บทที่ 5 การทำซ้ำในภาษา C การทำซ้ำในภาษาซี
การวนรอบ (Loop) ในภาษา C มีการวนรอบดังนี้ for,while,do-while for -> กำหนดจำนวนรอบที่แน่นอนได้ while -> วนรอบหากเงื่อนไขเป็นจริง do-while -> วนรอบหากเงื่อนไขเป็นจริง รอบแรกจะทำเสมอ
หลักการวนลูปในภาษาซี คอมพิวเตอร์จะทำงานวนซ้ำในชุดคำสั่งที่กำหนด และมีการตรวจสอบเงื่อนไขการทำซ้ำเรียกว่าการวนลูป ชุดคำสั่ง LOGO
for(ค่าเริ่มต้น ; เงื่อนไข ; การเพิ่ม/ลดค่าตัวแปร) มีรูปแบบการใช้งาน ดังนี้ ตัวอย่าง for(i = 0 ;i < 10 ;i++) { } for(m=5;m < 20;m+=2) { } for(x=20;x>1;x--) { } for(ค่าเริ่มต้น ; เงื่อนไข ; การเพิ่ม/ลดค่าตัวแปร)
Flowchart ค่าเริ่มต้น เงื่อนไข N Y Action การเพิ่ม/ลดค่า
การวนลูปโดยใช้คำสั่ง for 1. กำหนดค่าเริ่มต้นให้กับตัวแปรควบคุม ตัวอย่างที่ 1 int i; { for (i = 1; i<=5; i++) printf (“Number %d\n”, i); } 2. ตรวจสอบเงื่อนไข 4. Update ค่าตัวแปรควบคุม 3. กระทำ statement ภายในลูป LOGO
การวนลูปโดยใช้คำสั่ง for Flowchart i = 1 i = 1 true Printf (“Number %d\n”, i) Printf (“Number %d\n”, i) i <= 5 i++ i++ false LOGO
การวนลูปโดยใช้คำสั่ง for ผลลัพธ์ Number 1 Number 2 Number 3 Number 4 Number 5 LOGO
การวนลูปโดยใช้คำสั่ง for ตัวอย่างที่ 2 for (i = 5; i>=0; i--) { printf (“Number %d\n”, i); } LOGO
การวนลูปโดยใช้คำสั่ง for Flowchart i = 5 true Printf (“Number %d\n”, i) i >= 0 i-- false LOGO
การวนลูปโดยใช้คำสั่ง for ผลลัพธ์ Number 5 Number 4 Number 3 Number 2 Number 1 Number 0 LOGO
ตัวอย่าง int i,m; m = 2; for(i=0;i<10;i++) { printf(“m = %d”,m); } Output : ? int m = 20,i; for(i=50;i>1;i--) { m++; } printf(“m = %d”,m); Output : ?
ทดลองเขียน พิมพ์ 10 ครั้ง รับค่าและพิมพ์ออก 10 ค่า
แบบฝึกหัด จงเขียนโปรแกรมเพื่อวนรอบ 20 รอบ ในแต่ละรอบให้พิมพ์คำว่า Good Morning จงเขียนโปรแกรมสูตรคูณแม่ 2 จงเขียนโปรแกรมสูตรคูณตามที่ผู้ใช้ป้อนทางคีย์บอร์ด
for(ค่าเริ่มต้น ; เงื่อนไข ; การเพิ่ม/ลดค่าตัวแปร) การวนลูปโดยใช้คำสั่ง For ซ้อน For มีรูปแบบการใช้งาน ดังนี้ for(ค่าเริ่มต้น ; เงื่อนไข ; การเพิ่ม/ลดค่าตัวแปร) { คำสั่ง for ; //ลูปใน }
ตัวอย่างโปรแกรมแสดงตารางสูตรคูณด้วยคำสั่ง for #include <stdio.h> #include <conio.h> main () { int i, j; for (i=2; i<=12; i++) //for ลูปนอก for (j=1; j<=12; j++) //for ลูปใน printf ("%d x %d = %d\n", i, j, i*j); getch(); } LOGO
ผลลัพธ์โปรแกรมแสดงตารางสูตรคูณโดยใช้คำสั่ง for LOGO
แบบฝึกหัด จงใช้คำสั่ง For เพื่อเขียนโปรแกรมสูตรคูณ โดยมีผลลัพธ์การทำงานดังนี้ Output LOGO
LOGO
การใช้คำสั่ง For ร่วมกับคำสั่งอื่น ๆ LOGO
ตัวอย่างโปรแกรม จงเขียนโปรแกรมแสดงเลข 1-20 โดยให้แสดงเครื่องหมาย * ที่ตัวเลขที่ 3 หารลงตัวและแสดงตัวเลขเหล่านั้นในอีกบรรทัดด้วย โดยมีผลลัพธ์การทำงานดังนี้ LOGO
แบบฝึกหัด เขียนโปรแกรมให้นับทั้งหมด10 ครั้ง โดยแต่ละครั้งให้แสดงตัวเลขออกมาตั้งแต่ 1 ถึง 10 และเมื่อนับถึง 4 ให้แสดงคำว่า FOUR แทนที่จะแสดงตัวเลข 4 และเมื่อนับถึง 7 ให้แสดงคำว่า SEVEN แทนที่จะแสดงตัวเลข 7 ดังผลลัพธ์ต่อไปนี้ Output 1 2 3 FOUR 5 6 SEVEN 8 9 10 LOGO
โปรแกรมเขียนรูป 3 เหลี่ยมด้วยคำสั่ง for Output LOGO
ตัวอย่างใช้ for ลูปในการเขียนโปรแกรมคำนวณหาผลรวม จงเขียนโปรแกรมคำนวณค่าต่อไปนี้ 1 + 2 + 3 + ... + 100 LOGO