SlideShare a Scribd company logo
1 of 3
Download to read offline
ใบความรูที่ 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                                     สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
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
ตัวอยางที่ 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                                  สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี

More Related Content

What's hot

การโปรแกรมDevc++
การโปรแกรมDevc++การโปรแกรมDevc++
การโปรแกรมDevc++minkky04
 
ภาษาซี
ภาษาซีภาษาซี
ภาษาซีminkky04
 
ภาษา C เบื้องต้น
ภาษา C เบื้องต้นภาษา C เบื้องต้น
ภาษา C เบื้องต้นputthita
 
59170109 ณัฐฐพล
59170109 ณัฐฐพล59170109 ณัฐฐพล
59170109 ณัฐฐพลBeam Suna
 

What's hot (7)

Week4-1
Week4-1Week4-1
Week4-1
 
การโปรแกรมDevc++
การโปรแกรมDevc++การโปรแกรมDevc++
การโปรแกรมDevc++
 
ภาษาซี
ภาษาซีภาษาซี
ภาษาซี
 
ภาษา C เบื้องต้น
ภาษา C เบื้องต้นภาษา C เบื้องต้น
ภาษา C เบื้องต้น
 
Control structure
Control structureControl structure
Control structure
 
59170109 ณัฐฐพล
59170109 ณัฐฐพล59170109 ณัฐฐพล
59170109 ณัฐฐพล
 
Week2
Week2Week2
Week2
 

Viewers also liked (20)

Writing 8 punctuation
Writing 8 punctuationWriting 8 punctuation
Writing 8 punctuation
 
대신리포트_모닝미팅_151230
대신리포트_모닝미팅_151230대신리포트_모닝미팅_151230
대신리포트_모닝미팅_151230
 
Guia del usuario
Guia del usuarioGuia del usuario
Guia del usuario
 
Emerald
EmeraldEmerald
Emerald
 
Santiago
SantiagoSantiago
Santiago
 
Fièvres et viroses à Madagascar
Fièvres et viroses à MadagascarFièvres et viroses à Madagascar
Fièvres et viroses à Madagascar
 
Employer branding w rekrutacji
Employer branding w rekrutacjiEmployer branding w rekrutacji
Employer branding w rekrutacji
 
Breaking of the wall : role of allergy and histamine release
Breaking of the wall : role of allergy and histamine releaseBreaking of the wall : role of allergy and histamine release
Breaking of the wall : role of allergy and histamine release
 
Writing 1 intro
Writing 1 introWriting 1 intro
Writing 1 intro
 
Ass4 2
Ass4 2Ass4 2
Ass4 2
 
fibers
fibersfibers
fibers
 
Kaos
KaosKaos
Kaos
 
Les anophèles du Niger, Recherche et appui au programme national de lutte
Les anophèles du Niger, Recherche et appui au programme national de lutte Les anophèles du Niger, Recherche et appui au programme national de lutte
Les anophèles du Niger, Recherche et appui au programme national de lutte
 
Consistent income forever
Consistent income foreverConsistent income forever
Consistent income forever
 
Writing 2 sentences
Writing 2 sentencesWriting 2 sentences
Writing 2 sentences
 
BB16 Spider by OneQube
BB16 Spider by OneQubeBB16 Spider by OneQube
BB16 Spider by OneQube
 
Biologia-Animais geneticamente modificados
Biologia-Animais geneticamente modificadosBiologia-Animais geneticamente modificados
Biologia-Animais geneticamente modificados
 
Kynangtimviec
KynangtimviecKynangtimviec
Kynangtimviec
 
SCURC Presentation-RA 4.9.15-fix
SCURC Presentation-RA 4.9.15-fixSCURC Presentation-RA 4.9.15-fix
SCURC Presentation-RA 4.9.15-fix
 
La Marca
La MarcaLa Marca
La Marca
 

Similar to Know4 1

หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา ปาโจด ม.5
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา  ปาโจด ม.5หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา ปาโจด ม.5สิรินยา ปาโจด
 
หน่วยที่2 โครงสร้างข้อมูล นาย ธนพงษ์ น่านกร เลขที่ 1 ชั้น ม.5
หน่วยที่2 โครงสร้างข้อมูล  นาย ธนพงษ์  น่านกร  เลขที่ 1   ชั้น ม.5หน่วยที่2 โครงสร้างข้อมูล  นาย ธนพงษ์  น่านกร  เลขที่ 1   ชั้น ม.5
หน่วยที่2 โครงสร้างข้อมูล นาย ธนพงษ์ น่านกร เลขที่ 1 ชั้น ม.5palmyZommanow
 
ม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocodeม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง PseudocodeBansit Deelom
 
โปรแกรม
โปรแกรมโปรแกรม
โปรแกรมminkky04
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : ThreadIMC Institute
 
capture 59170107 group 2
capture 59170107 group 2capture 59170107 group 2
capture 59170107 group 2Thamon Monwan
 
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซีmansuang1978
 
ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301
ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301
ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301Oraya Krodkrua
 
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวาUnit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวาIrinApat
 
โปรแกรมDevc++
โปรแกรมDevc++โปรแกรมDevc++
โปรแกรมDevc++minkky04
 

Similar to Know4 1 (20)

Know4 3
Know4 3Know4 3
Know4 3
 
05 Loops
05  Loops05  Loops
05 Loops
 
Know4 2
Know4 2Know4 2
Know4 2
 
Week4-1
Week4-1Week4-1
Week4-1
 
Unit12
Unit12Unit12
Unit12
 
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา ปาโจด ม.5
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา  ปาโจด ม.5หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา ปาโจด ม.5
 
หน่วยที่2 โครงสร้างข้อมูล นาย ธนพงษ์ น่านกร เลขที่ 1 ชั้น ม.5
หน่วยที่2 โครงสร้างข้อมูล  นาย ธนพงษ์  น่านกร  เลขที่ 1   ชั้น ม.5หน่วยที่2 โครงสร้างข้อมูล  นาย ธนพงษ์  น่านกร  เลขที่ 1   ชั้น ม.5
หน่วยที่2 โครงสร้างข้อมูล นาย ธนพงษ์ น่านกร เลขที่ 1 ชั้น ม.5
 
ม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocodeม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocode
 
โปรแกรม
โปรแกรมโปรแกรม
โปรแกรม
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : Thread
 
03 input math
03 input math03 input math
03 input math
 
Know3 4
Know3 4Know3 4
Know3 4
 
capture 59170107 group 2
capture 59170107 group 2capture 59170107 group 2
capture 59170107 group 2
 
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี
 
ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301
ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301
ชื่อนางสาวอรยา กรดเครือ รหัสนิสิต 59670118 กลุ่ม 3301
 
หลักการเขียนโปรแกรม
หลักการเขียนโปรแกรมหลักการเขียนโปรแกรม
หลักการเขียนโปรแกรม
 
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวาUnit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
 
งานPPT
งานPPTงานPPT
งานPPT
 
C slide
C slideC slide
C slide
 
โปรแกรมDevc++
โปรแกรมDevc++โปรแกรมDevc++
โปรแกรมDevc++
 

More from โรงเรียนอุตรดิตถ์ดรุณี

More from โรงเรียนอุตรดิตถ์ดรุณี (20)

Ass4 5
Ass4 5Ass4 5
Ass4 5
 
Ass4 4
Ass4 4Ass4 4
Ass4 4
 
Ass4 3
Ass4 3Ass4 3
Ass4 3
 
Ass4 1
Ass4 1Ass4 1
Ass4 1
 
Ass3 5
Ass3 5Ass3 5
Ass3 5
 
Ass3 4
Ass3 4Ass3 4
Ass3 4
 
Ass3 3
Ass3 3Ass3 3
Ass3 3
 
Ass3 2
Ass3 2Ass3 2
Ass3 2
 
Ass3 1
Ass3 1Ass3 1
Ass3 1
 
Know3 3
Know3 3Know3 3
Know3 3
 
Know3 2
Know3 2Know3 2
Know3 2
 
Know3 1
Know3 1Know3 1
Know3 1
 
Ass2 3
Ass2 3Ass2 3
Ass2 3
 
Ass2 2
Ass2 2Ass2 2
Ass2 2
 
Ass2 1
Ass2 1Ass2 1
Ass2 1
 
Know2 2
Know2 2Know2 2
Know2 2
 
Know2 1
Know2 1Know2 1
Know2 1
 
Ass1 2
Ass1 2Ass1 2
Ass1 2
 
Ass1 1
Ass1 1Ass1 1
Ass1 1
 
Know1 4
Know1 4Know1 4
Know1 4
 

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 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี