เมื่อ Mark Zuckerberg ตั้งข้อสังเกตว่าคอมพิวเตอร์นั้นดีมากในการทำซ้ำคำสั่ง ไม่ใช่เรื่องง่ายสำหรับมนุษย์ เราเริ่มเบื่อกับการทำสิ่งเดิมๆ ซ้ำๆ หลายๆ ครั้งติดต่อกัน แต่คอมพิวเตอร์สามารถทำได้นับล้านๆ พันล้านครั้งโดยไม่เคยเบื่อ หากคุณพยายามส่งคำทักทายไปยังผู้ใช้ Facebook ทุกคน คงไม่มีมนุษย์คนใดที่จะมีเวลาเพียงพอในการทักทาย อย่างไรก็ตาม คุณสามารถสร้างคอมพิวเตอร์เพื่อแก้ปัญหานี้ได้โดยเขียนโค้ดสองสามบรรทัด นี่คือวิธีการทำงานของลูป พวกเขาห้ามไม่ให้เราทำกิจวัตรเดิมซ้ำๆ ลูปที่ได้รับความนิยมมากที่สุดใน Java คือลูปที่กำหนดหรือสำหรับลูป
จะเขียน for loop ใน Java ได้อย่างไร? สำหรับลูปโดยทั่วไป
สำหรับลูปดำเนินการคำสั่งบางอย่างในจำนวนครั้งที่กำหนด ตัวอย่างเช่น การเขียนห้าสิบครั้งว่า “ฉันต้องไม่เป็นอย่างนั้น โฮ่ โฮ่ โฮ่ โฮ่” หรือส่งคำเชิญถึงเพื่อนๆ ทุกคนเป็นงานทั่วไปสำหรับลูปประเภทนี้ ไวยากรณ์ของ for loop เวอร์ชันที่พบมากที่สุด:
for ([counter initialization]; [checking conditions]; [changing of the counter])
{
// statements
}
นิพจน์การเริ่มต้นจะดำเนินการเพียงครั้งเดียว จากนั้นเงื่อนไขจะได้รับการประเมิน ซึ่งควรเป็นนิพจน์บูลีน
- เมื่อลูปเริ่มต้น การเริ่มต้นจะดำเนินการ
- เมื่อเงื่อนไขประเมินเป็นเท็จ ลูปของเราจะหยุดทำงาน

วิธีใช้ for loop ใน Java ตัวอย่างง่ายๆ
นี่คือ Java เฉพาะสำหรับตัวอย่างลูป มาเขียน "สวัสดี!" สิบครั้งกันเถอะ สตริงแต่ละครั้งจะมาจากบรรทัดใหม่ด้วยหมายเลขของบรรทัดนี้ เราควรได้รับผลลัพธ์ถัดไป:- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
- สวัสดี!
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ". Hello!");
}
}
}
มันทำงานอย่างไร?
ขั้นตอนที่ 1 ตัวนับ i = 0 วนซ้ำตรวจสอบเงื่อนไขของเรา i << 10 ดังนั้นคำสั่งวนรอบจึงถูกดำเนินการ มันพิมพ์วลี "1. สวัสดี!" 1 เป็นสตริง i + 1 (เพราะเรานับจากศูนย์ แต่บรรทัดแรกยังคงเป็นบรรทัดแรก) ตัวนับ i เพิ่มขึ้น ตอนนี้ i = 1 ขั้นตอนที่ 2 เคาน์เตอร์ i = 1 i < 10 เราจึงมีวลี "2. สวัสดี!" และ i + 1 = 2 … ขั้นตอนที่ 10 ตัวนับ i = 9 เราได้ "10. สวัสดี!" และ i เพิ่มขึ้นเป็น 10 ขั้นตอนที่ 11 ตัวนับ i = 10 i < 10 ? ไม่ มันเป็นเรื่องเท็จ ดังนั้นการวนซ้ำจึงสิ้นสุดลง
ในขณะที่วนซ้ำและวนซ้ำ: ความแตกต่างและความคล้ายคลึงกัน
ใน Java indefinite loop หรือ while loop จะถูกดำเนินการอย่างต่อเนื่องหากเงื่อนไขบูลีนเป็นจริง ไวยากรณ์ของลูป while:
while (boolean condition)
{
loop statements...
}
บ่อยครั้งที่คุณอาจเลือกได้ว่าต้องการใช้ลูปใด บางครั้งก็อยู่ใกล้กันมาก และคุณสามารถใช้ทั้งสองอย่างได้ ตัวอย่างเช่น นี่คือรหัสสำหรับงานเดียวกัน (เขียน "Hello!" สิบครั้งด้วยจำนวนบรรทัด) เขียนด้วย while loop:
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // we use the counter this way
while (j < 10) {
System.out.println(j + 1 + ". Hello!");
j++;
}
}
}
อย่างไรก็ตาม โปรแกรมเมอร์มืออาชีพไม่ชอบการวนซ้ำแบบ while และพยายามใช้การวนซ้ำทุกครั้งที่เป็นไปได้
สำหรับ | ในขณะที่ |
---|---|
เราใช้ for วนซ้ำหากเราทราบจำนวนการวนซ้ำแล้ว |
เราใช้ while วนซ้ำหากเราไม่ทราบจำนวนการวนซ้ำที่แน่นอน |
การกำหนดค่าเริ่มต้น การตรวจสอบเงื่อนไข และการเปลี่ยนตัวนับได้รวมอยู่ในไวยากรณ์ของลูปแล้ว |
การเริ่มต้นและการตรวจสอบเงื่อนไขภายในลูป คุณสามารถใช้ตัวนับเพิ่มเติมในใบแจ้งยอด |
วนซ้ำไม่สิ้นสุดสำหรับ:
|
วนซ้ำไม่สิ้นสุดในขณะที่:
|
วิธีออกจาก for loop ใน java
โดยปกติแล้ว for loop จะทำงานเหมือนโฟลว์และวิธีธรรมชาติในการออกจากลูปคือเมื่อเงื่อนไขรับค่าเท็จ อย่างไรก็ตาม มีสองคำสั่งควบคุมที่อนุญาตให้คุณออกจากลูปก่อนที่คุณจะได้ค่าเท็จของเงื่อนไข นั่นคือ หยุดและดำเนินการต่อ- ตัวแบ่งช่วยให้ออกจากเนื้อหาของลูปปัจจุบันราวกับว่าเงื่อนไขของลูปได้รับการประเมินเป็นเท็จ
- ทำต่อ ทำให้การวนซ้ำข้ามไปยังขั้นตอนถัดไป (วนซ้ำตัวนับ) โดยไม่ต้องดำเนินการตามคำสั่ง
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
// how to break out of a for loop, java: check if we have any "Stranger" in // our array
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
break;
}
System.out.println("Hello," + names[i]);
}
}
}
ผลลัพธ์ของการดำเนินการโปรแกรมของเราคือ:
Hello,Mike
Hello,Dustin
I don't chat with strangers
ดู? เราวิ่งหนีออกจากวงก่อนที่จะทักทายลูคัสและวิล ตอนนี้ให้ใช้ดำเนินการต่อเพื่อละเว้น "คนแปลกหน้า" แต่อยู่ในวงเพื่อทักทายเพื่อนคนอื่น ๆ
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("Hello," + names[i]);
}
}
}
ผลลัพธ์คือ:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
ยอดเยี่ยม! เราทักทายเพื่อนทุกคนแต่ไม่ได้คุยกับคนแปลกหน้า
เวอร์ชันปรับปรุงของ for loop หรือ for-each
For-each เป็นประเภทของ for ลูปที่ใช้เมื่อคุณต้องการประมวลผลองค์ประกอบทั้งหมดของอาร์เรย์หรือคอลเลกชัน อันที่จริง วลี for-each ไม่ได้ใช้ในรอบนี้ ไวยากรณ์เป็นดังนี้:
for (type itVar: array)
{
Block of operators;
}
โดยที่typeคือชนิดของตัวแปรวนซ้ำ (เหมือนกับชนิดข้อมูลของอาร์เรย์), ItVarคือชื่อของมัน, array คืออาร์เรย์ หรืออาจมีโครงสร้างข้อมูลอื่น เช่น ArrayList อย่างที่คุณเห็น ไม่มีตัวนับ ตัวแปรการวนซ้ำจะวนซ้ำองค์ประกอบของอาร์เรย์หรือคอลเลกชัน ไม่ใช่ค่าดัชนี เมื่อดำเนินการลูปดังกล่าว ตัวแปรการวนซ้ำจะได้รับการกำหนดค่าของแต่ละองค์ประกอบของอาร์เรย์หรือคอลเลกชันตามลำดับ หลังจากนั้นบล็อกคำสั่ง (หรือตัวดำเนินการ) ที่ระบุจะถูกดำเนินการ ข้อควรสนใจ: for-each ลูปสามารถนำไปใช้กับอาร์เรย์และคลาสใดๆ ที่ใช้อินเทอร์เฟซ java.lang.Iterable เรามาแก้ปัญหาเดิมด้วยการทักทายเพื่อนโดยไม่สนใจคนแปลกหน้า ("คนแปลกหน้า") แต่คราวนี้ใช้ for-each วนรอบ
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
// for each loop, Java code
for (String name : names) {
if (name.equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("hello, " + name);
}
}
}
เพื่อเสริมสิ่งที่คุณได้เรียนรู้ เราขอแนะนำให้คุณดูบทเรียนวิดีโอจากหลักสูตร Java ของเรา
อ่านเพิ่มเติม: |
---|
GO TO FULL VERSION