คำสั่งวนซ้ำ do while loop ในภาษา TypeScript

18 January 2022

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

  • การใช้งานคำสั่ง do while loop
  • ความแตกต่างระหว่าง while และ do while

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

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

do {
    // Statements
} while (condition);

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

นี่เป็นตัวอย่างของโปรแกรมนับเลข ในตัวอย่างนี้เรามาใช้คำสั่ง do while loop เพื่อนับตัวเลขจาก 1-5 และแสดงผลตัวเลขที่นับได้ออกทางหน้าจอในภาษา TypeScript

counting.ts
let i: number = 1;

do {
    console.log(i);
    i++;
} while (i <= 5);

console.log("Loop ended");

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

1
2
3
4
5
Loop ended

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

นั่นทำให้โปรแกรมนับเลขจาก 1-5 และแสดงผลออกทางหน้าจอ ต่อไปในตอนนี้ให้คุณลองเปลี่ยนค่าเริ่มต้นของลูปในตัวแปร i ให้เป็น 6 และมาดูกันว่ามันทำงานอย่างไร นี่เป็นโปรแกรมที่ได้รับการแก้ไขใหม่

counting2.ts
let i: number = 6;

do {
    console.log(i);
    i++;
} while (i <= 5);

console.log("Loop ended");

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

6
Loop ended

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

ความแตกต่างระหว่าง while และ do while

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

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

random_number1.ts
function randomBetween(min: number, max: number): number {
    const n = max - min + 1;
    return Math.floor(Math.random() * n) + min;
}

let result: number;
let count: number = 0;
let want: number = 5;

do {
    result = randomBetween(1, 10);
    console.log(`Randomed: ${result}`);
    count++;
} while (result != want);

console.log(`It takes ${count} iterations to get ${want}`);

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

Randomed: 7
Randomed: 9
Randomed: 9
Randomed: 6
Randomed: 1
Randomed: 8
Randomed: 7
Randomed: 5
It takes 8 iterations to get 5

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

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

random_number2.ts
let result: number;
let count: number = 0;
let want: number = 5;

result = randomBetween(1, 10);
console.log(`Randomed: ${result}`);
count++;

while (result != want) {
    result = randomBetween(1, 10);
    console.log(`Randomed: ${result}`);
    count++;
}

console.log(`It takes ${count} iterations to get ${want}`);

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

function randomBetween(min: number, max: number): number {
    const n = max - min + 1;
    return Math.floor(Math.random() * n) + min;
}

ฟังก์ชัน randomBetween ในตัวอย่างนี้ใช้สำหรับสุ่มตัวเลขจำนวนเต็มจากช่วงที่กำหนดระหว่าง min และ max โดยเมธอด Math.random เป็นเมธอดในภาษา JavaScript ที่ใช้สำหรับสุ่มตัวเลขระหว่าง 0 แต่ไม่เกิน 1 และเราได้ขยายขนาดผลของการสุ่มให้อยู่ในช่วงที่ต้องการโดยการคูณด้วยผลต่างของพารามิเตอร์ทั้งสอง

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

บทความนี้เป็นประโยชน์หรือไม่?Yes·No