หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (for)
The For Statement Syntax for (ForInit ; ForExpression; PostExpression) Action Example for ( int i = 0; i < 3; i++ ) { cout << "i is " << i << endl; }
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 0
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 0
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i 0
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i 0
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i 1
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 1
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i 1
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i 1
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i 2
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i 2
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2 i 2
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2 i 2
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2 i 3
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2 i 3
Execution Trace for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2 all done i 3
Example: หาผลรวมของเลข 1 ถึง 10 T F i=i+1 i<=10 sum = sum+i i = 1 sum = 0 sum = 0; for (int i=1; i <= 10; i++ ) sum += i; RESULT: sum =
Example: พิมพ์เลขคี่ระหว่าง 1 ถึง 10 T F i+=2 i < 10 i = 1 print i for (int i=1; i<10; i+=2) cout << i << “ ”; RESULT:
Example: พิมพ์ค่า 10 ลงมาจนถึง 1 i = 10 print i i=i-1 T F i>=1 for (int i=10; i >= 1; i--) cout << i << “ ”;
initialization condition statements update for (int count = 1; count <= 10; count++) { cout << count << endl; } int count = 1; // Initialize the counter while (count <= 10) // Check the counter { cout << count << endl; count++; // Update the counter } initialization condition statements update while vs. for
คำสั่งควบคุมอื่นๆ break, continue คำสั่ง break ใช้เมื่อต้องการให้การทำงานสามารถหลุด ออกจากลูปและกระโดด ไปยังคำสั่งที่อยู่นอกลูปทันที คำสั่ง continue ใช้เมื่อต้องการให้การทำงานนั้น ย้อนกลับไป วนรอบใหม่อีกครั้ง ซึ่งมีลักษณะที่ตรงข้ามกับคำสั่ง break
ตัวอย่างการใช้คำสั่ง break double x; while ( 1 ) { /* infinite loop */ cin >> x; if ( x < 0.0 ) break; /* ออกจาก loop ถ้า x เป็น ค่าติดลบ */ cout << sqrt(x) << endl; } /* break jumps to here */ cout << “Loop is terminated by negative input” << endl;
ตัวอย่างการใช้คำสั่ง break int main() { int x; for( x = 0; x < 10; x++ ) { if( x == 5 ) { break; /* ออกจาก loop ถ้า x เท่ากับ 5 */ } cout << x << “ ”; } return 0; }
ตัวอย่างการใช้คำสั่ง continue double x; while ( 1 ) { cin >> x; if (x < 0.0) continue; /* ถ้า x เป็นค่าติดลบ ให้วนไป เริ่มลูปใหม่ ( รับค่าใหม่ )*/ cout << sqrt(x) << endl; /*continue transfers control to here to begin next iteration */ } cout << “Loop is terminated by negative input” << endl;
ตัวอย่างการใช้คำสั่ง continue int main() { int x; for( x = 0; x < 10; x++ ) { if( x==5 ) { continue; /* เริ่มลูปรอบใหม่ ถ้า x เท่ากับ 5 ( ไม่พิมพ์ค่า x = 5) */ } cout << x << “ ”; } return 0; }
แบบฝึกหัด ให้เขียนโปรแกรมเพื่อแสดงค่า x 2 + x – 4 เมื่อ x=5, 6, …,12 ให้เขียนโปรแกรมเพื่อแสดงสูตรคูณแม่ 5