ลักษณะของคำสั่งแบ่งออกเป็นกี่ลักษณะ

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

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

  • การใช้งานคำสั่ง while loop
  • การใช้ลูปเพื่อนับตัวเลขถอยหลัง
  • การตรวจสอบจำนวนเฉพาะ
  • การใช้คำสั่ง while loop กับอาเรย์
  • การกำหนด loop ที่ซ้อนกัน
  • การแยกตัวประกอบของตัวเลข

การใช้งานคำสั่ง while loop

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

while (condition) {
    // statements
}

ในการใช้งานคำสั่ง while loop นั้นจะประกอบไปด้วยสองส่วนคือ การกำหนดเงื่อนไข

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
4 สำหรับลูปเพื่อทำงานและส่วนของคำสั่งที่ต้องการให้ทำงานในขณะที่เงื่อนไขเป็นจริง ซึ่งเราจะกำหนดภายในบล็อค
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
5 ของคำสั่ง

เงื่อนไขสามารถเป็นนิพจน์ใดๆ ที่เป็น Boolean หรือสามารถประเมินค่าเป็น Boolean และในขณะที่โปรแกรมทำงานในลูป เมื่อถึงบางช่วงจังหวะคุณต้องทำให้เงื่อนไขเป็นเท็จเพื่อจบการทำงานของลูป ไม่เช่นนั้นโปรแกรมจะทำงานในลูปตลอดไปหรือเรียกว่า Infinity loop

สำหรับตัวอย่างแรกในบทนี้ เรามาเริ่มต้นด้วยการเขียนโปรแกรมนับเลขจาก 1-10 โดยการใช้งานคำสั่ง while loop ในภาษา C ซึ่งมันเป็นตัวอย่างที่เรียบง่ายที่สุดสำหรับแสดงการใช้งานลูป เป็นตัวอย่างของโปรแกรม

counting_numbers.c

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
2
3
4
5
6
7
8
9
10
Loop ended

นี่เป็นตัวอย่างพื้นฐานสำหรับการใช้งานคำสั่ง while loop ลูป เราได้ใช้มันนับตัวเลขจาก 1-10 และแสดงค่าออกทางหน้าจอ ต่อไปมาดูคำอธิบายในแต่ละส่วนว่าโปรแกรมทำงานอย่างไร

int n = 1;

เราเริ่มต้นจากการประกาศตัวแปร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ที่มีค่าเป็น
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
7 สำหรับใช้ในการนับเลข นี่เป็นการกำหนดค่าเริ่มต้นสำหรับคำสั่ง while loop เพื่อทำงาน ซึ่งมักจะทำก่อนที่ลูปจะเริ่มทำงานหรือก่อนจะถึงบล็อคของคำสั่ง while loop

while (n <= 10) {
    printf("%d\n", n);
    n++;
}

จากนั้นเป็นการสร้างลูปโดยการกำหนดเงื่อนไขเป็น

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
8 นี่หมายความว่าเราต้องการให้โปรแกรมทำงานในลูปในขณะตัวแปร
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 มีค่าน้อยกว่าหรือเท่ากับ
n++;
0 และภายในบล็อคของคำสั่ง while loop เราได้แสดงค่าของตัวแปรออกทางหน้าจอ

n++;

ในตอนท้ายของลูป เราเพิ่มค่าในตัวแปร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ขึ้นไปหนึ่งค่า นี่เป็นคำสั่งที่จะทำให้ค่าในตัวแปรเพิ่มขึ้นเรื่อยๆ สำหรับการทำงานแต่ละรอบของลูป จนกระทั่งค่าในตัวแปรมากว่า
n++;
0 ซึ่งนี่จะทำให้เงื่อนไขเป็นเท็จและลูปจบการทำงาน

คุณสามารถลองเปลี่ยนคำสั่งเพิ่มค่าในตัวแปร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ให้เพิ่มค่าทีละสองได้ ยกตัวอย่างเช่น

n += 2;

จากนั้นรันโปรแกรมอีกครั้ง และนี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
3
5
7
9
Loop ended

ในรอบนี้ จะเห็นว่าโปรแกรมทำงานในลูปเพียง 5 รอบเท่านั้น เนื่องจากตัวเลขเพิ่มขึ้นทีละสอง และทำให้เงื่อนไขเป็นเท็จเร็วขึ้น ดังนั้น กล่าวคือภายในบล็อคของคำสั่ง while loop คุณมีหน้าที่ควบคุมการทำงานของลูปเพื่อจบการทำงานในแบบที่ต้องการ

การใช้ลูปเพื่อนับตัวเลขถอยหลัง

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

count_down.c

#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Count down started
10
9
8
7
6
5
4
3
2
1
0
Now! Firing the Rocket

นี่เป็นโปรแกรมนับถอยหลังโดยมันจะเริ่มจาก 10 สำหรับการปล่อยจรวด คุณสามารถจินตนาการได้ว่าคุณจะใช้มันทำอะไรก็ได้ ไม่ใช่เพียงแค่การปล่อยจรวด

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
0

คล้ายกับตัวอย่างก่อนหน้า เรากำหนดค่าเริ่มต้นในตัวแปร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 เป็น
n++;
0 เนื่องจากเราต้องการนับตัวเลขถอยหลังจาก 10 จากนั้นกำหนดเงื่อนไขในคำสั่ง while loop เป็น
n++;
6 ซึ่งหมายความว่าโปรแกรมจะทำงานในลูปในขณะที่ค่าในตัวแปรนั้นมากกว่าหรือเท่ากับ
n++;
7

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
1

และสิ่งที่เราต้องทำกับ loop นี้เพื่อให้มันจบการทำงานก็คือลดค่าในตัวแปร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ลงทีละ 1 ในแต่ละรอบของการทำงานในลูป นั่นจะทำให้เมื่อค่าในตัวแปรน้อยกว่า
n++;
7 โปรแกรมจบการทำงาน และจรวดถูกปล่อยในตอนท้ายของโปรแกรม

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

การตรวจสอบจำนวนเฉพาะ

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

คุณคงจะทราบว่าจำนวนเฉพาะคือตัวเลขจำนวนเต็มที่มากกว่า 1 ที่มีเพียงตัวเลขสองตัวเท่านั้นที่หารลงตัวนั่นคือ 1 และตัวมันเอง และใช่แล้ว ในตัวอย่างนี้ เราจะมาเขียนโปรแกรมเพื่อตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่ นี่เป็นตัวอย่างของโปรแกรม

prime_number.c

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
2

นี่เป็นผลลัพธ์การทำงานของโปรแกรมจากการรันโปรแกรมสองครั้ง และเรากรอกตัวเลขเป็น 5 และ 18 ตามลำดับ

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
3
#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
4

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

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
5

ในตอนที่โปรแกรมเริ่มต้น เราได้ประกาศตัวแปร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 และรับค่ามาจากคีย์บอร์ด นี่เป็นตัวเลขที่จะนำมาตรวจสอบว่ามันเป็นจำนวนเฉพาะหรือไม่

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
6

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

n += 2;
1 เป็นตัวนับจาก 1-n เพื่อวนหาตัวเลขทั้งหมดที่หาร
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ลงตัว และถ้าหากมีการหารลงตัวเกิดขึ้น เรานับมันด้วยตัวแปร
n += 2;
3

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
7

ดังนั้นเราสร้าง while loop โดยกำหนดเงื่อนไขเป็น

n += 2;
4 เราจะค้นหาตัวเลขที่อยู่ระหว่าง 1 - n ว่ามีตัวเลขไหนที่หาร
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ลงตัวบ้าง ทุกครั้งที่มีการหารลงตัว เราใช้ตัวแปร
n += 2;
3 สำหรับนับ จากนั้นเพิ่มค่าค่าในตัวแปร
n += 2;
1 ขึ้นไป
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
7 เพื่อตรวจสอบตัวเลขใหม่ในลูปถัดไป

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
8

และเมื่อลูปจบการทำงาน เราจะทราบว่ามีกี่จำนวนที่หาร

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 ลงตัว และเนื่องจากเราตรวจสอบตัวเลขทั้งหมดจาก
1
3
5
7
9
Loop ended
0 ถ้าหากมันเป็นจำนวนเฉพาะ นั่นหมายความว่าค่าที่นับได้จากตัวแปร
n += 2;
3 จะมีค่าเท่ากับ
1
3
5
7
9
Loop ended
2 และเราใช้มันเป็นเงื่อนไขในการตรวจสอบ

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

1
3
5
7
9
Loop ended
3 เนื่องจากเราต้องการมุ่งเน้นที่การใช้งานคำสั่ง while loop เป็นหลัก

การใช้คำสั่ง while loop กับอาเรย์

อาเรย์เป็นประเภทข้อมูลในภาษา C ที่เก็บข้อมูลในรูปแบบของลำดับ และแต่ละค่าในอาเรย์สามารถเข้าถึงได้จาก Index ที่เป็นลำดับต่อเนื่องกัน ดังนั้นการใช้งานลูปกับอาเรย์ ทำให้เราสามารถวนอ่านค่าทั้งหมดในอาเรย์ได้อย่างง่ายดาย

ในตัวอย่างนี้เป็นการใช้งานคำสั่ง while loop กับอาเรย์ เรามาเขียนโปรแกรมสำหรับหาผลรวมและค่าเฉลี่ยของตัวเลขในอาเรย์ นี่เป็นตัวอย่าง

sum_n_average.c

#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
9

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
2
3
4
5
6
7
8
9
10
Loop ended
0

ในตัวอย่าง เป็นโปรแกรมสำหรับหาผลรวมและค่าเฉลี่ยของตัวเลขในอาเรย์ คุณสามารถจินตนาการได้ว่าอาเรย์สามารถมีสมาชิกเท่าไหร่ก็ได้ และเราสามารถวนมันได้ด้วยคำสั่ง loop

1
2
3
4
5
6
7
8
9
10
Loop ended
1

นี่เป็นประกาศอาเรย์เริ่มต้นสำหรับหาผลรวมและค่าเฉลี่ย และเพื่อนับจำนวนสมาชิกในอาเรย์ ฟังก์ชัน

1
3
5
7
9
Loop ended
4 ส่งค่ากลับเป็นไบท์ของข้อมูล เมื่อเราหารขนาดของอาเรย์และขนาดของประเภทข้อมูลของอาเรย์
1
3
5
7
9
Loop ended
5 เราจะได้จำนวนของสมาชิกทั้งหมดในอาเรย์และเก็บในตัวแปร
1
3
5
7
9
Loop ended
6

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

1
2
3
4
5
6
7
8
9
10
Loop ended
2

จากนั้นเราประกาศตัวแปร

n += 2;
1 ที่จะใช้เป็น Index เพื่อวนอ่านค่าในอาเรย์ และตัวแปร
1
3
5
7
9
Loop ended
8 สำหรับเก็บผลรวมของตัวเลขในอาเรย์

1
2
3
4
5
6
7
8
9
10
Loop ended
3

และเริ่มต้น while loop ด้วยการกำหนดเงื่อนไขเป็น

1
3
5
7
9
Loop ended
9 นั่นเป็นเพราะ Index ของอาเรย์จะเริ่มจาก
n++;
7 ไปจนถึง
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
1 นัั่นเอง จากนั้นภายในลูปนำแต่ละค่าในอาเรย์
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
2 มาบวกเก็บไว้ในตัวแปร
1
3
5
7
9
Loop ended
8 และเพิ่มค่าในตัวแปร
n += 2;
1 ขึ้นไปหนึ่งสำหรับค่าต่อไปของอาเรย์

1
2
3
4
5
6
7
8
9
10
Loop ended
4

เมื่อลูปจบการทำงาน เราจะได้รับผลรวมของตัวเลขในอาเรย์เก็บไว้ในตัวแปร

1
3
5
7
9
Loop ended
8 เราสามารถหาค่าเฉลี่ยได้จากนำผลรวมหารด้วยจำนวนสมาชิกทั้งหมดในอาเรย์ และแสดงผลสรุปออกทางหน้าจอ

การกำหนด loop ที่ซ้อนกัน

เหมือนกับคำสั่งควบคุมประเภทอื่นๆ ลูปสามารถที่จะซ้อนกันได้ การใช้งานของลูปในลักษณะนี้มักใช้กับอาเรย์สองมิติ หรือการทำงานในรูปแบบของตาราง M x N เช่นเมื่อต้องการทำงาน M อย่าง และในแต่ละอย่างจะมีงานที่ต้องการทำอีก N อย่าง

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

chess_table.c

1
2
3
4
5
6
7
8
9
10
Loop ended
5

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
2
3
4
5
6
7
8
9
10
Loop ended
6

ในตัวอย่างนี้เราได้สร้างตารางของหมากรุกด้วยคำสั่ง while loop แบบซ้อนกัน ที่มีขนาด 8 แถวและ 8 หลัก

1
2
3
4
5
6
7
8
9
10
Loop ended
7

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

1
2
3
4
5
6
7
8
9
10
Loop ended
8

หากโฟกัสเพียงแค่ loop ด้านนอก จะเห็นว่าหน้าที่ของมันคือการสร้างแถวเป็นจำนวน M แถว ตอนนี้เพียงคิดว่า loop ด้านในจะเป็นอะไรก็ได้ที่เราต้องการทำ ลองลบลูปด้านในโปรแกรมออกให้เหลือเท่ากับตัวอย่างด้านบน จะเห็นว่ามีเพียงบรรทัดว่างเปล่า 8 ที่ถูกแสดงออกทางหน้าจอ

เมื่อเราจัดตั้ง loop ด้านนอกให้สามารถทำงานได้ตามที่ต้องการแล้ว ต่อไปเป็นการกำหนดการทำงานให้กับ loop ด้านในเพื่อวาดตัวอักษรลงในตาราง ทุกอย่างที่คุณเขียนในลูปนี้จะถูกนำไปใช้สำหรับทุกแถวจากลูปด้านนอก

1
2
3
4
5
6
7
8
9
10
Loop ended
9

เราประกาศตัวแปร

#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
6 สำหรับนับการทำงานของลูปด้านในเพื่อวนทำงาน
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
7 รอบสำหรับแสดงแต่ละหลักในแถว และสร้างเงื่อนไขเพื่อให้แสดงแบบสลับตารางตาข่าย โดยการนำแถวและหลักมาบวกกันและหารด้วย
1
3
5
7
9
Loop ended
2 ถ้าหากการหารลงตัวเราแสดงตัวอักษร
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
9 ไม่เช่นนั้นแสดงช่องว่างแทน

และในตอนท้ายเมื่อ loop ทั้งสองทำงานเสร็จสิ้น เราจะได้ตารางของหมากรุกขนาด 8 x 8 ที่แสดงผลออกทางหน้าจอ คุณสามารถลองเปลี่ยนขนาดของตารางในตัวแปร

Count down started
10
9
8
7
6
5
4
3
2
1
0
Now! Firing the Rocket
0 และ
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
7 และรันโปรแกรมเพื่อดูผลลัพธ์อีกครั้งได้

การทำงานกับ loop นั้นเป็นเรื่องที่สนุก จากตัวอย่างก่อนหน้าสำหรับการวาดตารางหมากรุก เราสามารถเปลี่ยนเงื่อนไขเพื่อให้วาดภาพอื่นได้ นี่เป็นตัวอย่างของการวาดกรอบสี่เหลี่ยมล้อมรอบตาราง

int n = 1;
0

คุณเพียงแค่เปลี่ยนโค้ดใน loop ด้านในและรันโปรแกรมอีกครั้ง นี่เป็นผลลัพธ์การทำงานของโปรแกรม

int n = 1;
1

จากนั้นลองเปลี่ยนเงื่อนไขเป็นนี่เพื่อวาดเส้นตามแนวแทยงจากมุมทั้งสองและลองรันโปรแกรมอีกครั้งเพื่อดูผลลัพธ์

int n = 1;
2

และนี่เป็นผลลัพธ์ของโปรแกรม

int n = 1;
3

นี่ราวกับว่าเราอยู่ในการเรียนของวิชาศิลปะ ใช่แล้ว การเขียนโปรแกรมสามารถใช้สำหรับสร้างงานศิลปะได้ และคุณควรจะลองทำมัน

การแยกตัวประกอบของตัวเลข

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

int n = 1;
4

และในตัวอย่างนี้ เราจะเขียนโปรแกรมเพื่อแยกตัวประกอบของตัวเลขใดๆ ที่รับค่าเข้ามาผ่านทางคีย์บอร์ด นี่เป็นตัวอย่างของโปรแกรมสำหรับแยกตัวประกอบของตัวเลขในภาษา C

number_factorization.c

int n = 1;
5

นี่เป็นผลลัพธ์การทำงานของโปรแกรม เราสามารถใช้มันสำหรับแยกตัวประกอบของตัวเลขจำนวนเต็มใดๆ คุณสามารถลองมันกับตัวเลขของคุณ

int n = 1;
6
int n = 1;
7

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

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6

int n = 1;
8

เราประกาศอารย์สำหรับเก็บค่าตัวประกอบจำนวนเฉพาะทั้งหมดที่สามารถแยกได้ และประกาศตัวแปร

Count down started
10
9
8
7
6
5
4
3
2
1
0
Now! Firing the Rocket
3 สำหรับนับจำนวนตัวประกอบที่พบและใช้สำหรับกำหนดค่าดังกล่าวให้กับอาเรย์

int n = 1;
9

เรากำหนดค่าเริ่มต้นสำหรับ while loop เพื่อทำงานโดยกำหนดค่าให้กับตัวแปร

n += 2;
1 โดยให้มีค่าเริ่มต้นเท่ากับ
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 นั่นเป็นเพราะว่าค่านี้จะเปลี่ยนไปตลอดเวลาในขณะที่โปรแกรมทำงาน และเราต้องการรับษาค่าในตัวแปร
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 เอาไว้

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
0

จากนั้นเริ่มต้นการทำงานของ while loop นี่จะทำงานโดยการหาตัวเลขมาหาร

n += 2;
1 ในขณะที่ค่าในตัวแปรนั้นมากกว่า
n += 2;
1 และเมื่อค่าในตัวแปรน้อยกว่าหรือเท่ากับ
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
7 ซึ่งจะทำให้เงื่อนไขเป็นเท็จ หมายความว่าการแยกตัวประกอบเสร็จสิ้นนั่นเอง

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
1

ส่วน loop ด้านในนั้นทำหน้าที่สำหรับหาตัวเลขที่หาร

n += 2;
1 ลงตัวโดยวนจาก
1
3
5
7
9
Loop ended
2 ถึง
n += 2;
1 เราใช้ตัวแปร
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
6 สำหรับการวนที่ลูปนี้ หากพบกับตัวเลขที่สามารถหารลงตัว จะถือว่าตัวเลขดังกล่าวเป็นตัวประกอบของ
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
6 และเราเก็บมันลงอาเรย์
#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
05

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
2

จากนั้นลดค่าในตัวแปร

n += 2;
1 ลงให้เท่ากับผลจากการหารตัวมันเองด้วย
#include <stdio.h>

int main()
{
    int n = 10;
    printf("Count down started\n", n);
    while (n >= 0) {
        printf("%d\n", n);
        n--;
    }
    printf("Now! Firing the Rocket\n", n);
    return 0;
}
6 และจบการทำงานของลูปภายในด้วยคำสั่ง
1
3
5
7
9
Loop ended
3 ที่จะส่งการทำงานกลับมายังลูปด้านนอก และลูปด้านนอกจะทำการตรวจสอบเงื่อนไขของมัน (
#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
09) อีกครั้ง นี่แสดงว่าค่าในตัวแปร
n += 2;
1 ลดลงแล้ว

ถ้าหากเงื่อนไขยังคงเป็นจริง โปรแกรมจะทำงานที่ลูปด้านในเช่นเดิม แต่กับค่าของ

n += 2;
1 ที่ลดลงแล้ว และวนทำเช่นนี้ไปเรื่อยๆ จนกว่าค่าในตัวแปร
n += 2;
1 จะมีค่าน้อยกว่าหรือเท่ากับ
while (n <= 10) {
    printf("%d\n", n);
    n++;
}
7 เพื่อจบการทำงานของลูป และในตอนท้ายเราจะได้ตัวประกอบทั้งหมดที่แยกได้เก็บในตัวแปรอาเรย์
#include <stdio.h>

int main()
{
    int n = 1;
    while (n <= 10) {
        printf("%d\n", n);
        n++;
    }
    printf("Loop ended\n", n);
    return 0;
}
05

while (n <= 10) {
    printf("%d\n", n);
    n++;
}
3

สุดท้ายเป็นการแสดงผลลัพธ์ออกทางหน้าจอ โดยการใช้คำสั่ง while loop เพื่อวนอ่านค่าในอาเรย์เช่นเดิม คุณได้เห็นเราได้ทำเช่นนี้ในตัวอย่างของการหาผลรวมของตัวเลขในอาเรย์ และนี่ก็คือทั้งหมดของโปรแกรมแยกตัวประกอบนี้

ในบทนี้ คุณได้เรียนรู้การใช้งานคำสั่ง while loop สำหรับควบคุมโปรแกรมเพื่อให้ทำงานซ้ำๆ ภายใต้เงื่อนไขที่กำหนด เราได้แสดงตัวอย่างการใช้งานในรูปแบบต่างๆ เพื่อให้คุณสามารถนำไปประยุกต์ใช้ในงานของคุณได้