ลูป (หยุดและย้อนกลับ, ดำเนินการต่อ, ป้ายกำกับ) - 1

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

"วันนี้ฉันจะบอกคุณเกี่ยวกับบางสิ่งที่สะดวกเมื่อทำงานกับลูป"

"คำแรกคือคำหลักbreakหากคุณใช้คำสั่งนี้ในเนื้อหาของลูป จากนั้นลูปจะหยุดทันทีเมื่อคำสั่งถูกดำเนินการ นี่คือตัวอย่าง:"

ตัวอย่าง เอาท์พุต:
for (int i = 0; i < 10; i++)
{
System.out.println(i);
if (i > 5)
break;
}
0
1
2
3
4
5

"ตัวแบ่งสามารถใช้ในลูปได้หรือไม่"

"ใช่ คำสั่ง break สามารถใช้ได้ในลูปเท่านั้น เมื่อมีการเรียกใช้คำสั่ง break ลูปจะยุติทันที"

"ตกลง เข้าใจแล้ว"

"เยี่ยมมาก ตอนนี้สิ่งที่สองที่ฉันอยากจะแชร์คือคำหลัก "ดำเนินการต่อ" นอกจากนี้ยังสามารถใช้ได้ในลูปเท่านั้น เมื่อดำเนินการคำสั่งนี้ การวนซ้ำใหม่จะเริ่มขึ้นทันที กล่าวอีกนัยหนึ่งคือโค้ดใดๆ ที่เหลืออยู่ใน เพียงข้ามเนื้อหาของลูป "

"นี่คือตัวอย่าง:"

ตัวอย่าง เอาท์พุต:
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
continue;
System.out.println(i);
}
1
3
5
7
9

"ดังนั้น เมื่อโปรแกรมไปถึงคำสั่งดำเนินการต่อในลูป มันจะหยุดรันโค้ดในลูป"

"ไม่ ดูสิ เรามีลูปเมื่อเราเรียกใช้โค้ดเดิมหลายๆ ครั้ง ในตัวอย่างด้านบน เรามีลูปตั้งแต่ 0 ถึง 9 นั่นคือเนื้อหาของลูปจะถูกดำเนินการ 10 ครั้ง จริงไหม"

"ใช่."

"การวนซ้ำหนึ่งครั้งผ่านเนื้อความของลูปเรียกว่าการวนซ้ำ การวนซ้ำของเราประกอบด้วยการวนซ้ำ 10 ครั้ง ร่างกายของลูปจะถูกดำเนินการสิบครั้ง"

"ใช่ ชัดเจนแล้ว"

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

"นี่เป็นอีกตัวอย่างหนึ่ง:"

ตัวอย่าง
ArrayList list = new ArrayList();
for (Object o: list)
{
if (o == null) continue;
System.out.println(o.toString());
}

"ในตัวอย่างนี้ เราแสดงสตริงแทนวัตถุทั้งหมดในรายการ แต่เราข้ามวัตถุใดๆ ที่เป็นค่าว่าง"

"ตกลง เข้าใจแล้ว ฉันเห็นว่ามันสะดวกแค่ไหน"

"ใช่ ฉันอยากจะบอกคุณเกี่ยวกับฉลากด้วย พวกเขาไม่ค่อยได้ใช้ใน Java เพราะพวกเขามักจะละเมิดความสวยงามของตรรกะของโปรแกรม แต่คุณอาจพบพวกเขาในโค้ดในบางจุด ดังนั้นฉันอยากจะบอกคุณเกี่ยวกับ พวกเขามากกว่าที่คุณเคยได้ยินเกี่ยวกับพวกเขาในสนามเด็กเล่น "

"กาลครั้งหนึ่งนานมาแล้วอนุญาตให้ข้ามจากบรรทัดใดก็ได้ไปยังบรรทัดใดก็ได้ในโค้ด เราทำสิ่งนี้โดยใช้ป้ายกำกับและคำสั่ง goto นี่คือลักษณะที่ปรากฏ:"

รหัสที่น่ากลัวพร้อมป้ายกำกับ
System.out.println("Make cookies,");
label: System.out.println("not");
System.out.println("war");
goto label;

"ในตัวอย่างนี้ หลังจากเรียก ใช้คำสั่ง goto labelแล้ว โปรแกรมจะข้ามไปยังบรรทัดที่ทำเครื่องหมายlabel

"ต่อมา ทุกคนฉลาดขึ้นและตัดสินใจที่จะไม่ใช้ คำสั่ง goto Java ไม่รองรับ goto แต่gotoเป็นคำสงวน ไม่ใช่เรื่องใหญ่..."

"ไม่มี goto และไม่มีป้ายกำกับใน Java?"

"ไม่มีคำสั่ง goto แต่มีป้ายกำกับ!"

"เป็นไปได้อย่างไร"

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

"ตัวอย่างเช่น สมมติว่าคุณมี 5 ลูปที่ซ้อนกัน และเมื่อเงื่อนไขบางอย่างตรงตามเงื่อนไข คุณต้องการออกจากสามลูป แต่ไม่ใช่ทั้งหมด ป้ายกำกับเป็นวิธีที่ดีในการทำเช่นนี้:"

ตัวอย่าง
label1: for (int i = 0; i < 10; i++)
 label2: for (int j = 0; j < 10; j++)
  label3: for (int k =0; k < 10; k++)
   if (i == j && j == k)
    break label2;

"ในตัวอย่างนี้ เมื่อคำสั่ง break ถูกดำเนินการ เราไม่ได้ออกจากลูปที่มีตัวแปร k แต่ออกจากลูปที่มีป้ายกำกับ label2 นั่นคือเราออกจากลูปทั้งสองทันทีด้วย k และ j"

"ใช้บ่อยแค่ไหน?"

"พูดตามตรง ไม่บ่อยนัก แต่คุณไม่มีทางรู้ บางทีคุณอาจจะเห็นมันสักครั้ง สิ่งเหล่านี้เป็นพื้นฐานทางไวยากรณ์ คุณต้องรู้ทั้งหมดนี้!"

"ตกลง ขอบคุณ บิลาโบ"