:
โดยปกติที่ผ่านมานั้น เราเคยเขียนโปรแกรม และแต่ละคำสั่งทำงานเพียงครั้งเดียวเท่านั้น
ในบทนี้ จะกล่าวถึงการเขียนคำสั่ง เพื่อให้ทำงานคำสั่งอื่นๆ หลายๆรอบ ตามแต่ผู้เขียนโปรแกรมจะกำหนด
คำสั่งวนซ้ำ มีอยู่ 3 รูปแบบ ในบทนี้ จะขอพูดถึงการเขียนคำสั่ง while ส่วนอื่นๆ จะพูดในบทถัดๆไป
while มีรูปแบบการเขียนดังนี้
โค๊ด
while (เงื่อนไขการวนซ้ำ) {
    คำสั่ง 1;
    คำสั่ง 2;
    คำสั่ง 3; 
    คำสั่ง n;
}

ผังแสดงการทำงานของ While loop

เงื่อนไขการวนซ้ำ หมายถึง นิพจน์ที่สามารถประเมินค่าได้ เขียนอยู่ในเครื่องหมาย () ให้ค่าเป็นจริงหรือเท็จ
เมื่อเริ่มต้นประมวลผล คำสั่ง while เงื่อนไขการวนซ้ำ จะถูกตรวจสอบค่า หากมีค่าเป็นจริง คำสั่งภายใต้คำสั่ง while จะถูกประมวลผล 1 รอบ แล้ววนกลับไปตรวจสอบ เงื่อนไขการวนซ้ำอีก จนกระทั่งเงื่อนไขการวนซ้ำ มีค่าเป็นเท็จ คำสั่ง while จึงสิ้นสุดลง และไปทำคำสั่งถัดไป
หากการตรวจสอบเงื่อนไขการวนซ้ำในครั้งแรก และมีค่าเป็นเท็จ คำสั่งภายใต้คำสั่ง while จะไม่ได้รับการประมวลผลเลย
 คำสั่งภายใต้คำสั่ง while อาจเป็นคำสั่งง่าย ๆ หรือ คำสั่งเชิงประกอบ หากมีมากกว่า 1 คำสั่ง ต้องเขียนคำสั่งภายใต้เครื่องหมาย {}

Ex. จงเขียนโปรแกรมเพื่อพิมพ์เลข 1 - 10 ออกมาทางหน้าจอ โดยให้ขึ้นบรรทัดใหม่ทุกครั้งด้วย
Algorithm ( Show 1-10 Number)
    ให้ตัวแปร i เป็นจำนวนเต็ม มีค่าเป็น 1
    วนรอบ ตรวจสอบเงื่อนไข เมื่อ i น้อยกว่าหรือเท่ากับ 10 จริง { ให้แสดงค่า i 
    จากนั้นเพิ่มค่า i+1 }

Flowchart ( Show 1-10 Number)
    

Pseudo Code ( Show 1-10 Number)
START
PROCESS int i=1
    while(i<=10){
    PRINT i
    i++}
END

Source Code 
( Show 1-10 Number)

โค๊ด
#include<stdio.h>
int main(){
    int x = 1;
    while(x <= 10){
        printf("%d\n",x);
        x++;    
    }
}
ผลลัพธ์
1
2
3
4
5
6
7
8
9
10

ข้อควรระวังของการเขียน while คือ จะต้องกำหนดค่าให้กับตัวแปรเริ่มต้นก่อนเสมอ และ จะต้องเพิ่มค่าให้กับตัวแปรนั้นทุกๆครั้ง มิเช่นนั้นแล้ว อาจจะเกิดปัญหาการทำงานไม่รู้จบได้ เช่น หากข้อนี้ ไม่มีบรรทัด i++; แล้ว การทำงานจะเกิดเป็น loop ไม่รู้จบ เพราะว่า condition i <= 10 จะได้ว่า 1 <= 10 เสมอ ซึ่ง เป็นสัจนิรันดร์
โค๊ด 032loopwhile

จงเขียนโปรแกรมโดยใช้ while เพื่อแสดงผลสูตรคูณแม่ 12 ออกมาทางจอภาพ โดยให้ขึ้นบรรทัดทุกครั้ง และให้แสดงถึง 12 * 12
โดยรูปแบบการแสดงผลเป็นดังนี้
ผลลัพธ์
12 x 1 = 12
12 x 2 = 24
...
12 x 12 = 144
โดย x คือตัวเอ๊กซ์ เล็ก และให้เว้นวรรคด้วย
จงแก้โค้ดต่อไปนี้
โค๊ด
#include<stdio.h>

int main(){
int x = 1;
while(){
printf("12 x %d = %d\n", , )
x++;
}
return 0;
}
Refer: link