1. วนกลับ

Java มีลูปอีกประเภทหนึ่งwhileนั่นคือdo-whileลูป มันคล้ายกับwhileลูปธรรมดามากและประกอบด้วยสองส่วนเท่านั้น: "เงื่อนไข" และ "ตัวลูป" ตัวลูปถูกดำเนินการซ้ำแล้วซ้ำอีกตราบเท่าที่มีtrueเงื่อนไข โดยทั่วไปแล้วdo-whileลูปจะมีลักษณะดังนี้:

do
   statement;
while (condition);

หรือ

do
{
   block of statements
}
while (condition);

สำหรับwhileลูป ลำดับของการดำเนินการคือ: condition , loop body , condition , loop body , condition , loop body , ...

แต่สำหรับdo-whileลูปนั้นแตกต่างกันเล็กน้อย: loop body , condition , loop body , condition , loop body , ...

ในความเป็นจริง ข้อแตกต่างระหว่างwhileลูปและdo-whileลูปคือข้อเท็จจริงที่ว่าตัวลูปถูกดำเนินการอย่างน้อยหนึ่งครั้งสำหรับdo-whileลูป


2. ประโยชน์ของการใช้do-whileลูป

โดยทั่วไป ข้อแตกต่างระหว่างdo-whileลูปและwhileลูปคือเนื้อหาของdo-whileลูปถูกดำเนินการอย่างน้อยหนึ่งครั้ง

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

ตัวอย่าง:

โปรแกรมอ่านบรรทัดจากแป้นพิมพ์จนกว่าexitจะป้อน คำ

ในขณะที่ ทำในขณะที่
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

และคำสั่งใน ลู breakปทำงานในลักษณะเดียวกับในลูปcontinuedo-whilewhile


3. การเปรียบเทียบdo-whileลูป: Java กับ Pascal

อีกครั้ง Pascal มีอะนาล็อกของdo-whileลูป แต่มันเรียกว่าลูrepeat-untilป นอกจากนี้ยังแตกต่างจากdo-whileลูป เล็กน้อย ในrepeat-untilลูป เงื่อนไขจะระบุว่าเมื่อใดควรออกจากลูปแทนที่จะดำเนินการต่อ

ตัวอย่าง:

ปาสคาล ชวา
Repeat
   ReadLn(s);
Until s = 'exit';
String s;
do {
   s = console.nextLine();
}
while ( !s.equals("exit") );

เมื่อเทียบกับ Java วิธีที่ Pascal นำเสนอนั้นสวยงามมาก เราต้องเริ่มต้นด้วยตัวอย่างจาก Pascal มิฉะนั้นคุณจะหัวเราะ


2
งาน
Java Syntax,  ระดับบทเรียน
ล็อค
Cat's finalize method
It's difficult to accidentally lose an object: as long as you have even one reference to an object, it remains alive. But if not, then the object is approached by the finalize method, an unpredictable assassin that works for the Java machine. Let's create this method ourselves: protected void finalize() throws Throwable. The last two words will become clear a little later.