[ภาษาซี] คําสั่งทําซํ้า (Iteration Statement)

4 Jan 2018,
Share: 

คําสั่งทําซํ้าเป็นคําสั่งที่ใช้ในการวงรอบ (loop) การทํางานของโปรแกรม ซึ่งมีประโยชน์ในกรณีที่ต้องการทํางานหนึ่งๆ ซํ้ากันหลายๆครั้ง

คําสั่งทําซํ้า for

รูปแบบคําสั่ง

for ( กำหนดค่าเริ่มต้นให้กับตัวแปร ; เงื่อนไขที่ต้องการตรวจสอบ ; ปรับค่าตัวแปร) {
    คําสั่งที่ 1;
}
คําสั่งที่ 2;

คําสั่งนี้ประกอบไปด้วย 3 ส่วนคือ

  1. ส่วนกําหนดค่าเริ่มต้นให้กับตัวแปร ในส่วนนี้เป็นการกําหนดค่าเริ่มต้นให้กับตัวแปรที่ต้องการใช้งานใน loop โดยปกติแล้วเราจะใช้ตัวแปรนี้ในการควบคุม loop
  2. ส่วนของเงือนไขที่ต้องการตรวจสอบ เป็นนิพจน์ตรรกะที่เป็นเงือนไขในการทํางานของ loop โดยถ้าเงื่อนไขเป็นจริงจะยังทํางาน loop ต่อไป แต่ถ้าเงื่อนไขเป็นเท็จจะออกจากการทํางานของ loop
  3. ส่วนการปรับค่าของตัวแปร เป็นส่วนของการปรับค่าตัวแปรที่ใช้ใน loop เพื่อใช้เปลี่ยนแปลงค่า เพิ่มหรือลดค่าเพื่อให้การตรวจสอบในส่วนที่สองเป็นเท็จหรือเป็นจริงตามที่เราต้องการ

การทํางานของ for นั้นจะเริ่มทํางานตามลําดับที่กล่าวมาข้างต้นคือ เริ่มแรกกําหนดค่าตัวแปรเริ่มต้น ต่อมาก็จรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงก็ทําคําสั่งที่ 1 หลังจากนั้นก็ปรับค่าของตัวแปรในส่วนที่3  และไปตรวจสอบเงื่อนไขอีกครั้ง ทํางานวนไปแบบนี้เรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ

Image

ตัวอย่าง

int i;
for( i=0 ; i<100 ; i++){
    printf("%d\n", i);
}

จากตัวอย่างด้านบน โปรแกรมจะวนลูป ทั้งหมด 100 ครั้ง โดยแต่ละครั้งจะแสดงตัวเลขไปด้วย จาก 0-99

คําสั่งทําซั้า while

รูปแบบคําสั่ง

while ( เงื่อนไข ) {
    คําสั่งที่ 1;
}
คําสั่งที่ 2;

หลักการทํางานคือ จะทําการตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะทํางานคําสั่งที่ 1 เมื่อทํางานคําสั่งที่ 1 จบ ก็จะมาตรวจสอบเงื่อนไขอีก จะทําแบบนี้ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จจึงจะออกจาก loop มาทําคําสั่งที่ 2

Image

ตัวอย่าง

int number = 100;
while(number > 0){
    printf("%d", number);
    number--;
}

จากตัวอย่างด้านบน โปรแกรมจะวนลูป ทั้งหมด 100 ครั้ง โดยแต่ละครั้งจะแสดงตัวเลขไปด้วย จาก 100-1

คําสั่งทําซั้า do-while

รูปแบบคําสั่ง

do {
    คําสั่งที่ 1;
} while ( เงื่อนไข );
คําสั่งที่ 2;

หลักการทํางานคือ คําสั่งนี้จะทํางานคําสั่งที่ 1 อย่างน้อย 1 ครั้งเสมอ ไม่ว่าเงื่อนไขจะเป็นจริงหรือเท็จก็ตาม จากนั้นจึงค่อยมาจรวจสอบเงื่อนไขภายหลังจะเป็นจริงก็กลับไปทําคําสั่งที่ 1 อีกรอบ แต่หากเงื่อนไขเป็นเท็จก็จะออกจากการทํางานของ loop ไปทําคําสั่งที่ 2 ต่อไป

Image

int number = 100;
do{
    printf("%d", number);
    number--;
}while(number > 0)

จากตัวอย่างด้านบน โปรแกรมจะวนลูป ทั้งหมด 100 ครั้ง โดยแต่ละครั้งจะแสดงตัวเลขไปด้วย จาก 100-1

Suggestion blogs

เขียนโปรแกรมหาวันสุดท้ายของทุกเดือนใน 1 ปี ด้วย VB

สวัสดีครับกลับมาพบกันอีกในบทความนี้ เนื่องจากมีเพื่อนคนนึงมาปรึกษาผมว่าอยากจะเขียนโปรแกรมด้วยภาษา vb เพื่อหาวันที่สุดท้ายของทุกๆเดือนในปีที่เรากําหนดได้อย่างไร ผมจึงหาวิธีการเขียนจนได้ และนํามาแบงปันเพื่อนๆ ได้ศึกษากันครับ ตัวอย่าง ถ้าเราต้องการหาวันสุดท้ายของแต่ละเดือนในปี 2017 เราจะได้ผลออกมาประมาณนี้ครับ

Install Docker Compose on Raspberry Pi

สวัสดีครับ ในบทความก่อนหน้านี้ได้เรียนรู้วิธีการติดตั้ง Docker ใน Raspberry Pi กันไปแล้ว ในบทความนี้ผมจึงนําเรื่องการติดตั้ง Docker Compose มาให้ได้เรียนรู้กันครับ

IDN กับการจดโดเมนภาษาไทย

IDN หรือเรียกเต็มๆว่า Internationalized Domain Name คือ ชื่อโดเมนที่สามารถประกอบด้วยอักขระ (character) อื่น ๆ ที่นอกเหนือไปจากรหัส ASCII ได้ ซึ่งเดิมทีการตั้งชื่อโดเมนจะถูกจำกัดอยู่เพียงแค่การใช้ตัวอักษรภาษาอังกฤษ (อักษรโรมัน) A-Z, ตัวเลขอารบิก 0-9 และเครื่องหมายยัติภังค์ (-) เท่านั้น เนื่องจากข้อจำกัดของระบบชื่อโดเมน (domain name system - DNS) ที่ใช้อยู่แต่เดิม


Copyright © 2019 - 2025 thiti.dev |  v1.59.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ