WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ ทำซ้ำจนกว่าเงื่อนไขเป็นจริง โดยไม่ได้กำหนดว่าต้องทำกี่รอบ เมื่อใดก็ตามที่เงื่อนไขที่ทดสอบผลออกมาเป็นเท็จ ก็จะหยุดการทำงานซ้ำ ผ่านไปที่คำสั่งถัดไป แต่ถ้าเข้าไปทดสอบเงื่อนไขครั้งแรก ปรากฏว่าเป็นเท็จก็จะไม่เข้าไปทำงานส่วนนั้น แต่จะผ่านไปทำคำสั่งถัดไป
รูปแบบคำสั่ง While เงื่อนไข Do Begin Statement; : End;
PROGRAM while_II; VAR COUNT : INTEGER; BEGIN {MAIN} COUNT := 1; WHILE COUNT <=5 DO BEGIN WRITELN(‘I AM COMPUTER’); COUNT := COUNT+1; END; Write(‘False’); END.
WRITE(‘ป้อนจำนวนที่ต้องการ’);READLN(N): WHILE I <= N DO PROGRAM WHILE_1; Uses wincrt; VAR I, N : INTEGER; BEGIN I := 0; WRITE(‘ป้อนจำนวนที่ต้องการ’);READLN(N): WHILE I <= N DO Write(I, ‘ ’); I := I+1; END; END. โปรแกรมให้พิมพ์เลข 0 ถึงจำนวนใดก็ได้ตามที่ผู้ใช้ป้อน
PROGRAM WHILE_II; Uses wincrt; VAR CH : CHAR; BEGIN {MAIN} CH := ‘A’; WHILE CH <= ‘Z’ DO BEGIN Writeln(Ch); CH := Succ(Ch); END; END. ฟังก์ชัน SUCC สำหรับเพิ่มค่าตัวอักษรครั้งละ 1 ค่า PRED ลดค่าตัวอักษร
โปรแกรมแสดงเลขคู่ระหว่าง 1-10 PROGRAM WHILE_Couple; Uses wincrt; VAR J : Integer; BEGIN {MAIN} J := 2; WHILE J <= 10 DO BEGIN Write(j,’ ‘); J:=J+2; END; END.
แสดงผลบวก 1-10 PROGRAM WHILE_Sum; Uses wincrt; VAR J,Sum : Integer; BEGIN {MAIN} J := 1;Sum :=0; WHILE J <= 10 DO BEGIN Sum := Sum+J; Write(j,’ ‘); J:=J+1; END; WriteLn; WriteLn(‘result 1..10 is ‘,sum); END.
แสดงค่าเฉลี่ยเลขคี่ระหว่าง 1-10 PROGRAM WHILE_Average; Uses wincrt; VAR J,Sum,N : Integer; Average1 : Real; BEGIN {MAIN} J := 1;Sum :=0;N:=0; WHILE J <= 10 DO BEGIN Write(J,' ') ; Sum := Sum+J; J:=J+2; n:=n+1;{check round} END; WriteLn; Average1 := Sum/n; WriteLn('result sum1..10 is ',sum); WriteLn('result average 1..10 is ',Average1:5:2); End.
แบบฝึกหัด While DO จงเขียนโปรแกรมแสดงตัวอักษร Z ถึง A โดยใช้คำสั่ง While Do จงเขียนโปรแกรมพิมพ์ปี พ.ศ. 2546 ถึงพ.ศ. ใดก็ได้ (ป้อนปี พ.ศ.ที่ต้องการ) ถ้า พ.ศ. ที่ป้อนมากกว่า 2546 ให้แสดงจาก มากไปน้อย แต่ถ้าป้อนปี พ.ศ. น้อยกว่า 2546 ให้พิมพ์ พ.ศที่ป้อนถึง 2546 จงเขียนโปรแกรมบวกเลขช่วง 20-30 แล้วให้ค่าเฉลี่ยของตัวเลข (ใช้คำสั่ง While DO) จงเขียนโปรแกรมบวกคู่เลขช่วง 20-30 แล้วให้ค่าเฉลี่ยของตัวเลข (ใช้คำสั่ง While DO) จงเขียนแสดงเดือนที่เป็นเลขคี่ (ใช้คำสั่ง While DO) เช่น 1 3 5 7 9 พิมพ์ค่าตัวเลข จาก 250 แล้วลดลงครั้งละ 10 เช่น 250, 240, 230 ...10 พิมพ์เลข 10-100 โดยเพิ่มครั้งละ 5