More Related Content
More from โรงเรียนอุตรดิตถ์ดรุณี
More from โรงเรียนอุตรดิตถ์ดรุณี (20)
Know4 1
- 1. ใบความรูที่ 4.1
โครงสราง while ลูป
โครงสราง while ลูปเปนโครงสรางแบบงายที่สุดที่สามารถนํามาใชเขียนโปรแกรมเพื่อวนทํา
คําสั่ง (หรือกลุมของคําสั่ง) ซ้ําหลาย ๆ รอบ รูปแบบ การใชงาน while ลูปเปนดังนี้
while (condition)
statement;
เชนเดียวกับโครงสราง if เราสามารถกําหนดการวนซ้ําใหกับกลุมของคําสั่งไดโดยใชวงเล็บปกกา
({...})
while (condition) {
statement1;
statement2;
:
statementN;
}
ตัวอยางที่ 4.1 จงเขียนโปรแกรมเพื่อพิมพคาตั้งแต 1 ถึง N โดยรับคา N จากผูใช
1: using System;
2: class OneToN {
3: static void Main() {
4: int i, N;
5: Console.Write("Enter N: ");
6: N = int.Parse(Console.ReadLine());
7: i = 1; // initialize variable i to 1
8: while (i <= N) {
9: Console.WriteLine(i);
10: i++;
11: }
12: }
13: }
ตัวอยางผลการทํางาน
Please input N: 5
1
2
3
4
5
ลองมาพิจารณาการทํางานของโปรแกรมทีละขั้นตอน เมื่อโปรแกรมเริ่มทํางาน ผูใชจะปอนตัวเลข
เพื่อใชเปนคาของ N ณ บรรทัดที่ 6 และโปรแกรมจะกําหนดใหคา 1 เปนคาเริ่มตนของ i ที่บรรทัดถัดมา
จากนั้นโครงสราง while จะมีผลทําใหโปรแกรมทําคําสั่งที่บรรทัดที่ 9 และ 10 จนกระทั่งนิพจน i <=
74 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
- 2. N มีคาเปนเท็จ ในการวนซ้ําแตละครั้งโปรแกรมจะพิมพคา i และเพิ่มคา i ขึ้นทีละหนึ่ง ผลการทํางานของ
โปรแกรมจึงเปนการพิมพตัวเลขตั้งแต 1 (ซึ่งเปนคาเริ่มตนของ i) จนถึงคาของ N (ซึ่งเปนคาสุดทายของ i
ที่ยงทําใหนพจน i <= N เปนจริง)
ั ิ
ตัวอยางที่ 4.2 เราสามารถเขียนโปรแกรมเพื่อคํานวณหาผลรวมทั้งแต 1 ถึง N ใด ๆ โดยแกไขโปรแกรมใน
ตัวอยางที่ 4.1 เพียงเล็กนอยเทานั้นดังตอไปนี้
using System;
class Summing {
static void Main() {
int N, i, sum;
Console.Write("Please input N: ");
N = int.Parse(Console.ReadLine());
i = 1; sum = 0;
while (i <= N) {
sum = sum + i;
i++;
}
Console.WriteLine("Sum from 1 to {0} = {1} ", N, sum);
}
}
ตัวอยางผลการทํางาน
Please input N: 4
1
2
3
4
Sum from 1 to 4 = 10
ในตัวอยางที่ผานมาจะมีการกําหนดเงื่อนไขการทํางานของลูปโดยการกําหนดตัวแปรตัวหนึ่งขึ้นมา
ใชเปนตัวนับ (counter) ซึ่งมักจะถูกตั้งคาเริ่มตนใหเปนศูนยกอนเริ่มเขาลูป และเพิ่มคาขึ้นทีละหนึ่งหลังจาก
คําสั่งภายในลูปถูกทํางานเสร็จสิ้นหนึ่งรอบ โปรแกรมจะทําซ้ําไปเรื่อย ๆ จนกระทั่งตัวนับมีคาเกินกวาคาที่
กําหนด การวนลูปในลักษณะนี้เรียกวาลูปวนนับ (counting loop)
อยางไรก็ ตามลูปวนนับไมสามารถนําไปใชในสถานการณที่เราไมสามารถคาดการณไดวาลูป
จะตองถูกเรียกทํางานกี่รอบจึงจะจบการทํางาน อาทิเชนการวนรับคาจากผูใชเรื่อย ๆ จนกวาผูใชจะปอนคา
พิเศษคาหนึ่ง ในกรณีน้ีเราจะไมอาศัยตัวแปรที่ทําหนาที่เปนตัวนับ แตจะใชวิธีกําหนดเงื่อนไขของลูปใหมี
การเฝาดูคาในตัวแปร (ซึ่งมักใชรับคาจากผูใช) วามีคาเทากับคาพิเศษที่กําหนดใหสิ้นสุดการวนลูปหรือไม
การวนลูปในลักษณะนี้เรียกวาลูปเฝายาม (sentinel loop)
สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 75
- 3. ตัวอยางที่ 4.3 จงเขียนโปรแกรมเพื่อวนรับตัวเลขจากผูใชจนกวาผูใชจะปอนคาติดลบจึงจบการทํางาน
using System;
class While4 {
static void Main() {
int N = 0;
while (N >= 0) { // stop when N is negative
Console.Write("Please input N: ");
N = int.Parse(Console.ReadLine());
}
Console.WriteLine("Bye Bye!!!");
}
}
ตัวอยางผลการทํางาน
Please input N: 3
Please input N: 2
Please input N: 3000
Please input N: 9999
Please input N: -50
Bye Bye!!!
76 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี