การวนซำ้า โดยใช้
โครงสร้า ง for
คำาสัง for
่
สะดวกสำาหรับการนับรอบของลูป



for (init_stmt; condition; update_stmt)
for (init_stmt; condition; update_stmt)
statement;
statement;



การดำาเนินการที่เกี่ยวข้อง

ทำา init_ stmt หนึงครั้ง
่
2. ตรวจสอบ co nditio n ; ถ้าเป็นจริงให้ทำางาน
ใน bo dy lo o p
3. ทำา update _ stmt, แล้ update_stmt){้น
ทำางานในขั
for (init_stmt; condition; วupdate_stmt){ ตอนที่ 2
for (init_stmt; condition;
1.

}
}

statement1;
statement1;
statement2;
statement2;
:
:
statementN;
statementN;
คำำสัง for: ผัง กำรทำำ งำน
่
START
START
Initialize counter
Initialize counter

condition
condition

false

true
Statement
Statement
Statement
Statement
Update counter
Update counter

END
END
for vs. while


คำำสัง: พิมพ์เลข 1,2,...,10 ออกหน้ำจอ
่

using System;
using System;

using System;
using System;

class Counting {
class Counting {
static void Main() {
static void Main() {
int i;
int i;

class Counting {
class Counting {
static void Main() {
static void Main() {
int i;
int i;

}
}

}
}

i = 1;
i = 1;
while (i <= 10) {
while (i <= 10) {
Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
}
}

while loop

}
}

}
}

for (i = 1; i <= 10; i++) {
for (i = 1; i <= 10; i++) {
Console.WriteLine(i);
Console.WriteLine(i);
}
}

for loop
ทดสอบ: พิม พ์ด าว



เขียนโปรแกรมเพื่อพิมพ์ดาวจำานวน N
ดวง เมื่อ Nกำาหนดโดยผูใช้
้
ตัวอย่าง
using System;
using System;

Enter N: 3
Enter N: 3
***
***
Enter N: 8
Enter N: 8
********
********

class Stars {
class Stars {
static void Main() {
static void Main() {
int i,N;
int i,N;
Console.Write("Enter N: ");
Console.Write("Enter N: ");
N = int.Parse(Console.ReadLine());
N = int.Parse(Console.ReadLine());
?
?
for (i = 1; i <= N; i++) {
for (i ? 1; i <= N; i++) {
=
???
Console.Write("*");
Console.Write("*");
}
}

}
}

}
}

Console.WriteLine();
Console.WriteLine();
ตัว อย่า ง


แสดงค่า 0,2,4,...,20
for (i = 0; i <= 20; i += 2)
for (i = 0; i <= 20; i += 2)
Console.WriteLine(i);
Console.WriteLine(i);



แสดงค่า 1,3,5,...,19

?
?
?
for (i = 1; i <= 19; i += 2)
for (i = 1; i <= 19; i += 2)
Console.WriteLine(i);
Console.WriteLine(i);



แสดงค่า 15,12,9,...,0
?

?

?

for (i = 15; i >= 0; i -= 3)
for (i = 15; i >= 0; i -= 3)
Console.WriteLine(i);
Console.WriteLine(i);
ลูป หลายชั้น


โปรแกรมที่มีความซับซ้อนมากขึ้นอาจมี
ความต้องการใช้ลูปหลายชั้น




คล้ายกันกับคำาสัง if
่

ตัวอย่าง
N

using System;
using System;

i

sum = ∑∑ j
i =1 j =1

Inner
Loop

class Sum {
class Sum {
static void Main() {
static void Main() {
int sum = 0, i, j, N;
int sum = 0, i, j, N;
Console.Write("Enter N: ");
Console.Write("Enter N: ");
N = int.Parse(Console.ReadLine());
N = int.Parse(Console.ReadLine());
for (i = 1; i <= N; i++) {
for (i = 1; i <= N; i++) {
for (j = 1; j <= i; j++) {
for (j = 1; j <= i; j++) {
Outer
sum = sum + j;
sum = sum + j;
Loop
}
}
}
}
Console.WriteLine("Sum is {0}", sum);
Console.WriteLine("Sum is {0}", sum);
}
}
}
}
ตัว อย่า ง: พิม พ์ด าวอีก
ครัง !
้



เพิมเติมจากโปรแกรมพิมพ์ดาวเดิม
่
ตัวอย่าง
Enter N: 3
Enter N: 3
*
*
**
**
***
***
Enter N: 5
Enter N: 5
*
*
**
**
***
***
****
****
*****
*****

using System;
using System;
class Stars2 {
class Stars2 {
static void Main() {
static void Main() {
int i, j, N;
int i, j, N;
N = int.Parse(Console.ReadLine());
N = int.Parse(Console.ReadLine());
for (i = 1; i <= N; i++) {
for (i = 1; i <= N; i++) {
for (j = 1; j <= i; j++) {
for (j = 1; j <= i; j++) {
Console.Write("*");
Console.Write("*");
}
}
Console.WriteLine();
Console.WriteLine();
}
}
}
}
}
}

06 for loops

  • 1.
  • 2.
    คำาสัง for ่ สะดวกสำาหรับการนับรอบของลูป  for (init_stmt;condition; update_stmt) for (init_stmt; condition; update_stmt) statement; statement;  การดำาเนินการที่เกี่ยวข้อง ทำา init_ stmt หนึงครั้ง ่ 2. ตรวจสอบ co nditio n ; ถ้าเป็นจริงให้ทำางาน ใน bo dy lo o p 3. ทำา update _ stmt, แล้ update_stmt){้น ทำางานในขั for (init_stmt; condition; วupdate_stmt){ ตอนที่ 2 for (init_stmt; condition; 1. } } statement1; statement1; statement2; statement2; : : statementN; statementN;
  • 3.
    คำำสัง for: ผังกำรทำำ งำน ่ START START Initialize counter Initialize counter condition condition false true Statement Statement Statement Statement Update counter Update counter END END
  • 4.
    for vs. while  คำำสัง:พิมพ์เลข 1,2,...,10 ออกหน้ำจอ ่ using System; using System; using System; using System; class Counting { class Counting { static void Main() { static void Main() { int i; int i; class Counting { class Counting { static void Main() { static void Main() { int i; int i; } } } } i = 1; i = 1; while (i <= 10) { while (i <= 10) { Console.WriteLine(i); Console.WriteLine(i); i++; i++; } } while loop } } } } for (i = 1; i <= 10; i++) { for (i = 1; i <= 10; i++) { Console.WriteLine(i); Console.WriteLine(i); } } for loop
  • 5.
    ทดสอบ: พิม พ์ดาว   เขียนโปรแกรมเพื่อพิมพ์ดาวจำานวน N ดวง เมื่อ Nกำาหนดโดยผูใช้ ้ ตัวอย่าง using System; using System; Enter N: 3 Enter N: 3 *** *** Enter N: 8 Enter N: 8 ******** ******** class Stars { class Stars { static void Main() { static void Main() { int i,N; int i,N; Console.Write("Enter N: "); Console.Write("Enter N: "); N = int.Parse(Console.ReadLine()); N = int.Parse(Console.ReadLine()); ? ? for (i = 1; i <= N; i++) { for (i ? 1; i <= N; i++) { = ??? Console.Write("*"); Console.Write("*"); } } } } } } Console.WriteLine(); Console.WriteLine();
  • 6.
    ตัว อย่า ง  แสดงค่า0,2,4,...,20 for (i = 0; i <= 20; i += 2) for (i = 0; i <= 20; i += 2) Console.WriteLine(i); Console.WriteLine(i);  แสดงค่า 1,3,5,...,19 ? ? ? for (i = 1; i <= 19; i += 2) for (i = 1; i <= 19; i += 2) Console.WriteLine(i); Console.WriteLine(i);  แสดงค่า 15,12,9,...,0 ? ? ? for (i = 15; i >= 0; i -= 3) for (i = 15; i >= 0; i -= 3) Console.WriteLine(i); Console.WriteLine(i);
  • 7.
    ลูป หลายชั้น  โปรแกรมที่มีความซับซ้อนมากขึ้นอาจมี ความต้องการใช้ลูปหลายชั้น   คล้ายกันกับคำาสัง if ่ ตัวอย่าง N usingSystem; using System; i sum = ∑∑ j i =1 j =1 Inner Loop class Sum { class Sum { static void Main() { static void Main() { int sum = 0, i, j, N; int sum = 0, i, j, N; Console.Write("Enter N: "); Console.Write("Enter N: "); N = int.Parse(Console.ReadLine()); N = int.Parse(Console.ReadLine()); for (i = 1; i <= N; i++) { for (i = 1; i <= N; i++) { for (j = 1; j <= i; j++) { for (j = 1; j <= i; j++) { Outer sum = sum + j; sum = sum + j; Loop } } } } Console.WriteLine("Sum is {0}", sum); Console.WriteLine("Sum is {0}", sum); } } } }
  • 8.
    ตัว อย่า ง:พิม พ์ด าวอีก ครัง ! ้   เพิมเติมจากโปรแกรมพิมพ์ดาวเดิม ่ ตัวอย่าง Enter N: 3 Enter N: 3 * * ** ** *** *** Enter N: 5 Enter N: 5 * * ** ** *** *** **** **** ***** ***** using System; using System; class Stars2 { class Stars2 { static void Main() { static void Main() { int i, j, N; int i, j, N; N = int.Parse(Console.ReadLine()); N = int.Parse(Console.ReadLine()); for (i = 1; i <= N; i++) { for (i = 1; i <= N; i++) { for (j = 1; j <= i; j++) { for (j = 1; j <= i; j++) { Console.Write("*"); Console.Write("*"); } } Console.WriteLine(); Console.WriteLine(); } } } } } }