CProgramming

บทที่ 3 คำสั่งทำซ้ำ

คำสั่งทำซ้ำ (Loop) – for

คำสั่ง for เป็นคำสั่งที่มีการตรวจสอบเงื่อนไขก่อนการทำซ้ำ จะทำซ้ำก็ต่อเมื่อเงื่อนไขเป็นจริง เหมาะกับการทำซ้ำที่รู้จำนวนรอบที่แน่นอน และมีการเปลี่ยนแปลงค่าของตัวแปรคงที่ รูปแบบคำสั่งมีดังนี้

ลองบันทึกผลลัพธ์จากโปรแกรมตัวอย่างต่อไปนี้ดูนะครับ

ตัวอย่างที่ 30

#include<stdio.h>
int main(){
   int i;
   for(i=0;i<10;i++)
      printf("%d\n",i);
   printf("End Program\n");
   return 0;
}

ตัวอย่างที่ 31

#include<stdio.h>
int main(){
   int i,sum=0;
   for(i=1;i<=10;i++)
      sum+=i;
   printf("sum = %d\n",sum);
   printf("End Program\n");
   return 0;
}

คำสั่งทำซ้ำ (Loop) – while

คำสั่ง while เป็นคำสั่งที่มีการตรวจสอบเงื่อนไขก่อนการทำซ้ำ จะทำซ้ำก็ต่อเมื่อเงื่อนไขเป็นจริง  รูปแบบคำสั่งมีดังนี้

ลองบันทึกผลลัพธ์จากโปรแกรมตัวอย่างต่อไปนี้ดูนะครับ

ตัวอย่างที่ 32

#include<stdio.h>
int main(){
   int i=0;
   while(i<=10){
      printf("%d",i);
      i+=2;
   }
   printf("End Program\n");
   return 0;
}

คำสั่งทำซ้ำ (Loop) – do..while

คำสั่ง do..while เป็นคำสั่งทำซ้ำที่มีการทำงานอย่างน้อย 1 รอบก่อนการตรวจสอบเงื่อนไข จะทำซ้ำก็ต่อเมื่อเงื่อนไขเป็นจริง รูปแบบคำสั่งมีดังนี้

do {
กลุ่มคำสั่งที่ต้องการให้ทำซ้ำเมื่อเงื่อนไขเป็นจริง;
} while( เงื่อนไข );

ลองบันทึกผลลัพธ์จากโปรแกรมตัวอย่างต่อไปนี้ดูนะครับ

ตัวอย่างที่ 33

#include<stdio.h>
int main(){
   int i=1;
   do{
      printf("%d",i);
      i+=2;
   }while(i<=10);
   printf("End Program\n");
   return 0;
}

คำสั่งทำซ้ำ (Loop) – Advance Loop

การใช้ Loop ร่วมกับ การเช็คเงื่อนไข เป็นการใช้ Loop ร่วมกับคำสั่งเงื่อนไข ในบทที่ 2 เพื่อให้ Loop สามารถทำงานได้หลากหลายและมีประสิทธิภาพมากขึ้น ลองบันทึกผลลัพธ์จากโปรแกรมตัวอย่างต่อไปนี้ดูนะครับ

ตัวอย่างที่ 34

#include<stdio.h>
int main(){
   int i,count=0;
   for(i=1;i<=100;i++){
      if(i%3==0&&i%7==0){
         printf("%d\n",i);
         count++;
      }
   }
   printf("num mod 3 and 7 = 0 : %d\n",count);
   printf("End Program\n");
   return 0;
}

การใช้ Loop ซ้อน Loop (์Nested Loop) เป็นการทำงานที่มีความซับซ้อนมากขึ้น โดยการนำ loop ซ้อนกันหลายๆชั้น มักจะใช้ในการประมวลผลข้อมูลในรูปแบบที่ซับซ้อน เช่น เมตริกซ์ เป็นต้น ซึ่งมีลักษณะการทำงานดังรูป

ลองบันทึกผลลัพธ์ของโปรแกรมตัวอย่างต่อไปนี้ดูนะครับ

ตัวอย่างที่ 35 เมื่อป้อนเลข 5

int main(){#include<stdio.h>
   int i,j,n;
   scanf("%d",&n);
   for(i=0;i<n;i++){
      for(j=0;j<n;j++){
         printf("%d",i);
      }
      printf("\n");
   }
   printf("End Program\n");
   return 0;
}

ตัวอย่างที่ 36 เมื่อป้อนเลข 5

#include<stdio.h>
int main(){
   int i,j,n;
   scanf("%d",&n);
   for(i=0;i<n;i++){
      for(j=0;j<n;j++){
         printf("%d",j);
      }
      printf("\n");
   }
   printf("End Program\n");
   return 0;
}

ตัวอย่างที่ 37 เมื่อป้อนเลข 5

#include<stdio.h>
int main(){
   int i,j,n;
   scanf("%d",&n);
   for(i=0;i<n;i++){
      for(j=0;j<n;j++){
         printf("*");
      }
      printf("\n");
   }
   printf("End Program\n");
   return 0;
}

คลิปศึกษาเพิ่มเติมสำหรับคำสั่งทำซ้ำ For

หลังจากที่ได้เรียนเกี่ยวกับคำสั่งทำซ้ำประเภท For ในภาษาซีเรียบร้อยแล้ว หลายๆ คนอาจจะยังไม่เห็นภาพหรือเข้าใจการทำงานของคำสั่งทำซ้ำอย่างชัดเจน เพื่อให้สามารถเข้าใจการทำงานของการเขียนโปรแกรมคำสั่งทำซ้ำด้วยภาษาซีได้ดียิ่งขึ้น ในบททนี้จะมีคลิปสอนเกี่ยวกับคำสั่งทำซ้ำประเภท For พร้อมตัวอย่างต่างๆ

อ้างอิงจาก รศ.ดร.ประเสริฐ คณาวัฒนไชย คณะพาณิชยศาสตร์และการบัญชี จุฬาลงกรณ์มหาวิทยาลัย

คลิปศึกษาเพิ่มเติมสำหรับคำสั่งทำซ้ำ while

หลังจากที่ได้เรียนเกี่ยวกับคำสั่งทำซ้ำประเภท while ในภาษาซีเรียบร้อยแล้ว หลายๆ คนอาจจะยังไม่เห็นภาพหรือเข้าใจการทำงานของคำสั่งทำซ้ำอย่างชัดเจน เพื่อให้สามารถเข้าใจการทำงานของการเขียนโปรแกรมคำสั่งทำซ้ำด้วยภาษาซีได้ดียิ่งขึ้น ในบททนี้จะมีคลิปสอนเกี่ยวกับคำสั่งทำซ้ำประเภท while พร้อมตัวอย่างต่างๆ

อ้างอิงจาก รศ.ดร.ประเสริฐ คณาวัฒนไชย คณะพาณิชยศาสตร์และการบัญชี จุฬาลงกรณ์มหาวิทยาลัย

บทที่ 2 คำสั่งเงื่อนไข (Prev Lesson)
(Next Lesson) บทที่ 4 อาร์เรย์และสตริง (Array and String) – Array
Back to CProgramming

No Comments

Give a comment