“สวัสดี อามีโก้!

“สวัสดีเอลลี่”

"คุณได้ศึกษาลูปแล้ว และนั่นก็เยี่ยมมาก"

"ฉันเห็นด้วย! ตอนนี้ฉันไม่รู้เลยว่าจะอยู่อย่างไรโดยไม่มีพวกเขา"

"บางครั้งคุณสามารถทำได้โดยไม่มีพวกเขา... แต่บ่อยครั้งคุณจะต้องใช้มัน วันนี้เราจะพูดถึงสถานการณ์เมื่อคุณต้องการออกจากวงโคจรก่อนกำหนด"

"คุณหมายถึงเมื่อเงื่อนไขในการวนลูปต่อไปเป็นจริง แต่คุณยังต้องออกจากลูป"

"ใช่เลย! บางครั้งคุณฟังดูเหมือนคุณเป็นโปรแกรมเมอร์อยู่แล้ว อย่างไรก็ตาม หากต้องการออกจากลูปก่อนกำหนด คุณสามารถใช้คำ สั่ง breakได้ ลองดูตัวอย่างต่อไปนี้:

รหัส คำอธิบาย
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
โปรแกรมจะอ่านบรรทัดจากแป้นพิมพ์ จนกว่าคุณจะ"exit"ป้อน

"เข้าใจแล้ว โปรแกรมอ่านบรรทัดจากคอนโซล ถ้าคุณป้อน"exit"ตัวแปรisExitจะกลายเป็นtrueเงื่อนไขลูปจะเป็นและลูปจะสิ้นสุด"!isExitfalse

"ถูกต้อง ดังนั้น Java จึงมีbreakคำสั่งพิเศษที่ช่วยให้คุณลดความซับซ้อนของตรรกะดังกล่าวได้ หากbreakคำสั่งถูกดำเนินการภายในลูป การวนซ้ำจะสิ้นสุดลงทันที โปรแกรมจะเริ่มดำเนินการคำสั่งที่ตามหลังลูป คำสั่งนั้นสั้นมาก :

break;

"นี่คือวิธีที่คุณสามารถใช้breakคำสั่งเพื่อเขียนตัวอย่างที่เราเพิ่งพูดถึง:

รหัส คำอธิบาย
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
โปรแกรมจะอ่านบรรทัดจากแป้นพิมพ์ จนกว่าคุณจะ"exit"ป้อน

"บางทีฉันอาจจะจำได้ ฉันรู้สึกว่ามันจะมีประโยชน์"

"แต่breakไม่ใช่คำสั่ง Java เดียวที่ให้คุณควบคุมพฤติกรรมของลูป Java ก็มีคำcontinueสั่งนี้เช่นกัน หากคุณรันcontinueคำสั่งภายในลูป การวนซ้ำปัจจุบันจะสิ้นสุดก่อนกำหนด"

“คุณหมายถึงอะไรโดยย้ำ”

"การวนซ้ำเป็นการดำเนินการอย่างหนึ่งของเนื้อความของลูปcontinueคำสั่งขัดจังหวะการวนซ้ำปัจจุบันของลูป แต่ไม่เหมือนกับbreakคำสั่ง มันไม่จบการวนซ้ำ คำสั่งยังสั้น:

continue;

"ดังนั้นcontinueคำสั่งสามารถใช้ในลูปได้หากเราต้องการ 'ข้าม' การดำเนินการวนซ้ำบางอย่างของลูป"

"แน่นอน คุณเข้าใจความแตกต่างระหว่างbreakและcontinueหรือไม่ หากคุณต้องการค้นหาตัวเลขเจ็ดในจำนวน 20 หลักที่ไม่ซ้ำกัน คุณจะใช้คำสั่งการขัดจังหวะแบบวนซ้ำและการวนซ้ำแบบใด

"อืม... ฉันจะไล่ดูตัวเลขทั้งหมด และถ้าฉันเจอ 7 ฉันก็จะสั่ง a break"

"จะทำอย่างไรถ้าคุณต้องการแสดงตัวเลขจาก1ถึง20ยกเว้นตัวเลขที่หารด้วย7?"

"เอาล่ะ ฉันอาจจะต้องcontinue, เนื่องจากฉันไม่ต้องการออกจากลูป แต่ฉันก็ยังไม่ค่อยเข้าใจอยู่ดี"

"ให้ฉันแสดงวิธีแก้ปัญหานี้ นี่คือลักษณะของรหัสนี้"

รหัส คำอธิบาย
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
โปรแกรมแสดงตัวเลขตั้งแต่1ถึง 20หากตัวเลขหารด้วย7(เศษที่เหลือหารด้วย7คือ 0 ) เราจะข้ามการแสดงตัวเลขไป

“ทำไมเธอถึงมองฉันอย่างสงสัย เอลลี่? มีอะไรที่จับได้บ้างไหม?”

"คุณไม่หลงกลหรอก Amigo! อันที่จริง รหัสนี้จะทำงานไม่ถูกต้องมันจะแสดง 6 หลักแรกและจากนั้นiจะติดอยู่กับตัวเลข7ตลอดไป หลังจากนั้นcontinueคำสั่งจะข้ามคำสั่งอื่นอีกสองคำสั่ง: System.out.println(i)และi++เนื่องจาก ผลลัพธ์เมื่อเราถึงค่า7ตัวแปรiจะหยุดเปลี่ยนแปลงและเราจะวนซ้ำไม่สิ้นสุด ฉันเขียนโค้ดด้วยวิธีนี้โดยมีวัตถุประสงค์เพื่อแสดงข้อผิดพลาดที่พบบ่อยมาก"

"เราจะแก้ไขอย่างไร"

"มีสองตัวเลือกที่นี่:"

ตัวเลือกที่ 1:เปลี่ยนiก่อนดำเนินการcontinueแต่หลังจากi % 7

ตัวเลือกที่ 2:เพิ่มขึ้นเสมอiที่จุดเริ่มต้นของลูป แต่iค่าเริ่มต้นจะต้อง0เป็น

ตัวเลือกที่ 1 ตัวเลือก 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}

"เยี่ยมมาก! ฉันจะพยายามไม่ทำผิดแบบนี้"

“ฉันจะจำสัญญาของคุณ!”