ใบความรู้ที่ 4.3
โครงสร้าง for ลูป
do..while เมื่อพิจารณาการใช้คำสั่งเหล่านี้ในการเขียนลูปแบบวนนับ (counting loop) เราจะพบว่า
โครงสร้างของลูปมักจะมีส่วนประกอบเหล่านี้เสมอ
• ส่วนกำหนดค่าเริ่มต้นให้ตัวนับ – เป็นคำสั่งให้ค่าเริ่มต้นกับตัวแปรที่นำมาใช้เป็นตัวนับ คำสั่งนี้มัก
ถูกเขียนไว้ทันทีก่อนที่โปรแกรมจะเข้าทำงานในโครงสร้าง while หรือ do..while
• ส่วนคำสั่งที่ถูกทำซ้ำ – ส่วนหลักของลูปที่ประกอบด้วยคำสั่งที่ถูกเรียกทำงานในแต่ละรอบการวน
ซ้ำ
• ส่วนเงื่อนไข – ใช้สำหรับกำหนดเงื่อนไขว่าคำสั่งในลูปจะถูกเรียกทำต่อหรือไม่
• ส่วนปรับค่าตัวนับ – มักเป็นเพียงคำสั่งสั้น ๆ เพื่อเพิ่มหรือลดค่าตัวแปรที่นำมาใช้เป็นตัวนับ
ตัวอย่างโปรแกรมต่อไปนี้แสดงให้เห็นส่วนประกอบต่าง ๆ ทั้งสี่ส่วน (แต่ละส่วนกำกับไว้ด้วยคอม
เมนต์ท้ายบรรทัด)
using System;
class CountDown {
static void Main() {
int i;
i = 10; // (1) ส่วนกำหนดค่าเริ่มต้นให้ตัวนับ
while (i >= 0) { // (3) ส่วนเงื่อนไข
Console.WriteLine(i);
// (2) ส่วนคำสั่งที่ถูกทำซ้ำ
i--; // (4) ส่วนปรับค่าตัวนับ
}
}
}
|
เนื่องจากลูปแบบวนนับมีการใช้งานบ่อยครั้งในโปรแกรมทั่ว ๆ ไป ภาษา C# (รวมถึงภาษา
โปรแกรมอื่น ๆ ด้วย) จึงได้เตรียมโครงสร้างพิเศษเพื่อใช้จัดการลูปประเภทนี้ได้โดยสะดวกยิ่งขึ้น
โครงสร้างนี้คือโครงสร้าง for ซึ่งมีรูปแบบการใช้งานดังนี้
for (init_stmt;
condition; update_stmt) {
statement1;
statement2;
:
statementN;
}
|
ผังงานด้านล่างแสดงขั้นตอนการทำงานของ for ลูป สังเกตว่าเงื่อนไขของลูปจะถูกตรวจสอบ
ก่อนที่คำสั่งวนซ้ำคำสั่งแรกจะถูกเรียกใช้ ดังนั้นโครงสร้าง for จึงมีการทำงานที่คล้ายคลึงกับโครงสร้าง
while มากกว่าโครงสร้าง do..while
ตัวอย่างที่ 4.5 โปรแกรมต่อไปนี้จะแสดงตัวเลข 1,2,3,...,20 บนหน้าจอ
using System;
class Counting {
static void Main() {
int
i;
for (i = 1; i <= 20; i++)
Console.WriteLine(i);
}
}
|
ตัวอย่างที่ 4.6 โปรแกรมต่อไปนี้รับตัวเลขอินพุท N จากผู้ใช้และแสดงตัวเลขทั้งหมดที่เป็นตัวประกอบของ N (นำไปหาร N แล้วลงตัว)
using System;
class Divisors {
static void Main() {
int i, N;
Console.Write("Enter N: ");
N = int.Parse(Console.ReadLine());
for (i = 1; i <= N; i++) {
if (N%i == 0) Console.WriteLine(i);
}
}
}
|
ตัวอย่างผลการทำงาน
Enter N: 100
1
2
4
5
10
20
25
50
100
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น