ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยSureeporn Samenem ได้เปลี่ยน 10 ปีที่แล้ว
1
การทดลองที่ 9 Loops (วงวน) การทดลองที่ 9 Loops (วงวน)
4
summer solstice sol --- sun sistere --- still
7
ทบทวน วงวน while ตรวจสอบก่อนทำ do – while ตรวจสอบหลังจากทำไปแล้ว
for ทำซ้ำด้วยจำนวนรอบที่กำหนด
8
while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0;
Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i i i 1
9
while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0;
Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 1 i 1 i 2
10
while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0;
Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 2 i 2 i 3
11
while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0;
Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 3 i 3 i 4
12
while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0;
Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 4 i 4 i 5
13
while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0;
Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 5
14
do – while ตรวจสอบหลังจากทำไปแล้ว
Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i i 1 ? i 1
15
do – while ตรวจสอบหลังจากทำไปแล้ว
Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 1 i 2 ? i 2
16
do – while ตรวจสอบหลังจากทำไปแล้ว
Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 2 i 3 ? i 3
17
do – while ตรวจสอบหลังจากทำไปแล้ว
Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 3 i 4 ? i 4
18
do – while ตรวจสอบหลังจากทำไปแล้ว
Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 4 i 5 ? i 5
19
ทำซ้ำตามจำนวนรอบที่กำหนด
for ทำซ้ำตามจำนวนรอบที่กำหนด
20
วงวนคำสั่ง for #include <stdio.h> void main() { int i;
for (i = 0; i < 5; i++) { printf(“Hello\n”); } กำหนดค่าเริ่มต้น ทดสอบ เปลี่ยนแปลงค่า
21
วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 1 i
for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello true
22
วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 2 i
1 for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true
23
วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 3 i
2 for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true
24
วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 4 i
3 for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true
25
วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 5 i
4 false for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true
26
การบวกเลข 1 – 10 (while) i sum #include <stdio.h> void main() {
int i = 1, sum = 0; while( i <= 10) { sum += i; i++; } printf(“sum of 1 – 10 : %d\n”, sum); i sum 1 0+1 2 0+1+2 3 4 5 6 7 8 9 10 11 sum of 1 – 10 : 55
27
การบวกเลข 1 – 10 (do - while)
#include <stdio.h> void main() { int i = 1, sum = 0; do { sum += i; i++; } while (i <= 10); printf(“sum of 1 – 10 : %d\n”, sum); }
28
การบวกเลข 1 – 10 (for) #include <stdio.h> void main() {
int i, sum = 0; for( i = 1; i <= 10; i++) sum += i; printf(“sum of 1 – 10 : %d\n”, sum); }
29
ถ้าเป็นการหาผลบวกเลขคี่ เปลี่ยนอย่างไร ???
หาผลบวกเลขคู่ #include <stdio.h> void main() { int i = 2, sum = 0; while( i <= 20) { sum += i; i += 2; } printf(“sum of even number 1 – 20 : %d\n”, sum); sum 0+2 +4 +6 +8 +10 +12 +14 +16 +18 +20 ถ้าเป็นการหาผลบวกเลขคี่ เปลี่ยนอย่างไร ???
30
หาผลบวกเลขคี่ #include <stdio.h> void main() {
int i = 1, sum = 0; while( i <= 20) { sum += i; i += 2; } printf(“sum of odd number 1 – 20 : %d\n”, sum);
31
การรับ input ในวงวน #include <stdio.h> void main() { int n, i;
float sum = 0; printf("How many numbers ? "); scanf("%d", &n); for (i = 1; i <= n; ++i) { printf("x = "); scanf("%f", &x); sum += x; } printf("\nSummary of Number is %f\n", sum); 5 How many numbers ? x = 10 x = 20 x = 30 x = 40 x = 50 Summary of Number is 150
32
หลักการใช้งาน คำสั่งใน body ของ loops อาจมีคำสั่งเดียวหรือหลายคำสั่ง ถ้ามีคำสั่งเดียว ไม่จำเป็นต้องมี block ถ้ามีหลายคำสั่ง ต้องมี block มีคำสั่งเดียว ไม่ต้องมี block มีหลายคำสั่ง ต้องมี block for (i = 0; i < 10; i++) printf(“Hello\n”); int c = 0; for (i = 0; i < 10; i++) { printf(“Hello\n”); c = c + 1; printf(“c = %d\n”, c); } คำสั่งเดียว มี block ก็ได้ for (i = 0; i < 10; i++) { printf(“Hello\n”); }
33
output คืออะไร int i; for (i = 0; i < 5; i++) { printf(“Hello\n”);
Sawasdee int i; for (i = 0; i < 5; i++) { printf(“Hello\n”); printf(“Sawasdee\n”); }
34
ทำไมจึงได้ผลลัพธ์นี้
output คืออะไร ทำไมจึงได้ผลลัพธ์นี้ int i; for (i = 0; i < 5; i++) printf(“Hello\n”); printf(“Sawasdee\n”); Hello Sawasdee
35
? ? หลักการใช้งาน ระวัง อย่าใส่เครื่องหมาย “;” หลังวงเล็บคำสั่ง for
for (i = 0; i < 10; i++) ; printf(“Hello\n”); ; ? Hello for (i = 0; i < 10; i++) ; { printf(“Hello\n”); printf(“Sawasdee\n”); } ; Hello Sawasdee ?
36
หลักการใช้งาน จำนวนรอบและผลลัพธ์การทำงาน ให้ดูค่าเริ่มต้น ค่าสุดท้าย และ ลำดับการทำงาน i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 i = 10 int i = 0; while (i < 10) { i++; printf(“i = %d\n”, i); }
37
หลักการใช้งาน จำนวนรอบและผลลัพธ์การทำงาน ให้ดูค่าเริ่มต้น ค่าสุดท้าย และ ลำดับการทำงาน i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 int i = 0; while (i < 10) { printf(“i = %d\n”, i); i++; }
38
หลักการใช้งาน ระวังเงื่อนไขที่เป็นจริงตลอด จะทำให้เกิด infinite loops
int i = 1; while (i > 0) { printf(“i = %d\n”); i++; }
39
หลักการใช้งาน ระวังเงื่อนไขที่เป็นจริงตลอด จะทำให้เกิด infinite loops
int i = 1; do { printf(“i = %d\n”); i += 2; } while ( i != 10);
40
หลักการใช้งาน ระวังเงื่อนไขที่เป็นจริงตลอด จะทำให้เกิด infinite loops
int i, n = 0; for ( i = 1; i > n; i++ ) { printf(“i = %d\n”, i) }
41
break เป็นคำสั่งหยุดการทำงานในวงวน และกระโดดออกจากวงวน for () { ….
}
42
break เป็นคำสั่งหยุดการทำงานในวงวน และกระโดดออกจากวงวน int i;
for (i = 0; i < 10; i++) { printf(“Korat\n”); if (i > 3) { break; } printf(“Bangkok\n”); Korat Bangkok
43
break เป็นคำสั่งหยุดการทำงานในวงวน และกระโดดออกจากวงวน int i = 0;
while (i < 10) { printf(“Korat\n”); if (i > 3) { break; } printf(“Bangkok\n”); i++; Korat Bangkok
44
break ผลลัพธ์คืออะไร ? int i = 0; while (i < 10) {
printf(“Korat\n”); i++; if (i > 3) { break; } printf(“Bangkok\n”); Korat Bangkok
45
break บวกเลข 1 ถึงเท่าไร ? int i = 1, sum = 0; while (i <= 10) {
sum += i; if (i > 4) { break; } i++; printf(“sum = %d\n”, sum); sum = 15
46
break บวกเลข 1 ถึงเท่าไร ? int i = 1, sum = 0; while (i <= 10) {
sum += i; i++; if (i > 4) { break; } printf(“sum = %d\n”, sum); sum = 10
47
break บวกเลข 2 + 4 + … ? int i = 2, sum = 0; do { sum += i;
if (i > 8) { break; } i += 2; } while (i <= 20); printf(“sum = %d\n”, sum); sum = 30
48
break บวกเลข 2 + 4 + … ? int i = 2, sum = 0; do { sum += i; i += 2;
if (i > 8) { break; } } while (i <= 20); printf(“sum = %d\n”, sum); sum = 20
49
continue เป็นคำสั่งย้อนกลับไปตรวจสอบเงื่อนไข ถ้าจริง ให้ทำซ้ำ ถ้าเท็จ ออกจากวงวน for () { … continue; }
50
continue เป็นคำสั่งย้อนกลับไปตรวจสอบเงื่อนไข ถ้าจริง ให้ทำซ้ำ ถ้าเท็จ ออกจากวงวน int i; for (i = 0; i < 5; i++) { printf(“Korat\n”); if (i > 2) { continue; } printf(“Bangkok\n”); i = 0 Korat Bangkok i = 1 Korat Bangkok i = 2 Korat Bangkok i = 3 Korat i = 4 Korat
51
continue ผลลัพธ์คืออะไร ? int i = 0; while (i < 5) {
printf(“Korat\n”); if (i > 2) { continue; } printf(“Bangkok\n”); i++; i = 0 Korat Bangkok i = 1 Korat Bangkok i = 2 Korat Bangkok i = 3 Korat infinite loops
52
continue ผลลัพธ์คืออะไร ? int i = 0; while (i < 5) {
printf(“Korat\n”); i++; if (i > 2) { continue; } printf(“Bangkok\n”); i = 0 Korat i = 1 Bangkok i = 1 Korat i = 2 Bangkok i = 2 Korat i = 3 Korat i = 4 Korat
53
continue ผลลัพธ์คืออะไร ? int i = 0; do{ printf(“Korat\n”); i++;
if (i > 2) { continue; } printf(“Bangkok\n”); } while (i < 5); i = 0 Korat i = 1 Bangkok i = 1 Korat i = 2 Bangkok i = 2 Korat i = 3 Korat i = 4 Korat
54
continue ผลลัพธ์คืออะไร ? infinite loops int i = 0; do{
printf(“Korat\n”); if (i > 2) { continue; } i++; printf(“Bangkok\n”); } while (i < 5); i = 0 Korat i = 1 Bangkok i = 1 Korat i = 2 Bangkok i = 2 Korat i = 3 Bangkok i = 3 Korat i = 3 Korat i = 3 Korat infinite loops
55
วงวนซ้อนใน (nested loops)
เป็นคำสั่งสร้างวงวน ซ้อนกันสองชั้นขึ้นไป for () { คำสั่งในวงวนชั้นนอก for () { คำสั่งในวงวนชั้นใน }
56
วงวนซ้อนใน (nested loops)
จำนวนรอบของการทำงานในวงวนชั้นใน เท่ากับจำนวนรอบของวงวนชั้นนอก คูณกับจำนวนรอบวงวนชั้นใน for (3 รอบ) { คำสั่งในวงวนชั้นนอก ทำงาน 3 รอบ } for (5 รอบ) { คำสั่งในวงวนชั้นใน ทำงาน 15 รอบ }
57
ตัวอย่าง int i, j; for (i = 0; i < 3; i++) {
3 รอบ 5 รอบ int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 5; j++) { printf(“Bangkok\n”); } Bangkok ถูกพิมพ์ 15 แถว
58
ตัวอย่าง int i, j; for (i = 0; i < 2; i++) { printf(“Korat\n”);
for (j = 0; j < 3; j++) { printf(“Bangkok\n”); } Korat Bangkok
59
ตัวอย่าง int i, j; for (i = 0; i < 3; i++) { printf(“Korat\n”);
for (j = 0; j < 3; j++) { printf(“Bangkok\n”); } Korat Bangkok
60
ผลลัพธ์คืออะไร int i = 0; j = 0; while (i<3) { printf(“January”);
while(j < 3) { printf(“February”); j++; } i++; January February
61
ผลลัพธ์คืออะไร int i = 0; j = 0; while (i<3) { printf(“January”);
while(j < 3) { printf(“February”); j++; } printf(“March”); i++; January February March
62
ปฏิบัติการ การทดลองที่ 8 ข้อ 5 – 6 การทดลองที่ 9
63
ไปทำ lab กันเถอะ
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.