การวนลูปแบบ do while ใน Java

| ไอที | Java | 27563

การใช้งาน และตัวอย่างประกอบ การวนลูปแบบ do while ในภาษาจาวา

การใช้งาน do while ก็คล้าย ๆ กับการใช้งาน while นั่นแหละครับ แต่ต่างกันตรงที่ do while จะทำงานใน block ก่อนอันดับแรก ถึงจะมาตรวจสอบ

เรามาดู flowchart ของ do while กันก่อนดีกว่าครับ ตามรูปด้านล่างเลย



จาก flowchart จะเห็นว่า จะทำงานในส่วนของ execute code ก่อน ถึงจะมาทำการตรวจสอบ ใน while ถ้าค่าใน while เป็นจริง ก็จะกลับไปทำงานที่ do ต่อ แต่ถ้าค่าออกมาเป็นเท็จ ก็จะจบการทำงาน หรือออกมา loop นั่นเอง

ดู flowchart กันไปแล้ว ต่อไปเรามาดู Syntax ของ do while กันต่อดีกว่าครับ ตามโค้ดด้านล่างเลย

do{
  // execute code between these brackets
}
while(true or false(boolean)statement);

จากโค้ดด้านบน สามารถเขียนเป็นคำสั่ง do แล้วตามด้วยวงเล็บปีกกาเปิด { กับ วงเล็บปีกกาปิด } โค้ดต่าง ๆ ที่อยู่ระหว่างปีกกานี้จะทำงานก่อนเป็นดันดับแรก เมื่อทำงานจนครบ ก็จะมาตรวจสอบที่คำสั่ง while ซึ่งในเว็บเล็บ while นี้ จะเป็นคำสั่ง statement ซึ่ง่จะ return มาเป็นจริง หรือเท็จ ถ้าเป็นจริง จะกลับไปทำงานที่ block ของ do ต่ออีกรอบ พอทำงานที่ block ของ do เสร็จ ก็จะมาตรวจสอบอีก ถ้าเป็นจริง ก็จะไปทำงานที่ block ของ do ต่อแบบนี้ไปเรื่อย ๆ แต่ถ้าค่าที่ return ออกมานั้นเป็นเท็จก็จะจบการทำงานหรือออกจากลูปนี้ไปนั้นเอง

อธิบายมาซะยืดยาว บางคนอาจจะงง ๆ งั้นเราไปดูตัวอย่างกันดีกว่าครับ

ตัวอย่างที่ 1

public static void main(String[] args)
{
  int a = 1;
  do{
    System.out.print(a + " ");
    a++;
  }
  while(a < 5);
}

Output
1 2 3 4

จากโค้ดข้างบนเรากำหนด a เท่ากับ 1 แล้วเข้าสู่ loop do while ตอนแรกก็ปริ้น a ออกมาพร้อมกับช่องว่าง แล้วบวก a ขึ้นหนึ่ง แล้วเข้าสู่การตรวจสอบ while ถ้า a น้อยกว่า 6 ก็คือคืนค่าจริงกลับมา จากนั้นก็จะกลับไปทำที่บล็อกของ do ต่อ ทำแบบนี้ไปเรื่อย ๆ แต่เมื่อ จุดหนึ่ง a มีค่าเท่ากับ 6 ค่าที่รีเทิร์นออกมาจึงกลายเป็นเท็จจึงออกจากวงวน while ค่าที่ได้เลยออกมาแค่ 1 2 3 4 5

แล้ว do while มันต่างจาก while ยังไงละ

จากโค้ดข้างบนเมื่อเรานำไปเขียนเป็นแบบ while ก็จะมีเอาพุตออกมาเหมือนกัน

แต่............

ถ้าเราเปลี่ยนค่า a เป็นค่าอื่นเช่น เป็น 10 ค่าที่ได้ออกมาจะต่างกัน

ค่าที่ได้จากลูป while จะไม่ปริ้นอะไรออกมาเลย
ส่วนค่าที่ได้จากลูป do while จะปริ้นค่า 10 ออกมา

ดูตัวอย่างโค้ด while ได้ที่
href=http://www.doesystem.com/1b38f9b9a0582dfa031ba23fb4204625/การวนลูปแบบ-while-ใน-Java.htm


comments