หากคุณเป็นนักพัฒนา Java คุณอาจเคยเจอสถานการณ์ที่คุณจำเป็นต้องวนซ้ำในอาร์เรย์หรือคอลเลกชัน ในอดีต สิ่งนี้จำเป็นต้องเขียนโค้ดสำเร็จรูปจำนวนมากเพื่อตั้งค่าการวนซ้ำและวนซ้ำองค์ประกอบต่างๆ อย่างไรก็ตาม Java ได้เปิดตัวfor loop ที่ได้รับการปรับปรุง ซึ่งทำให้การวนซ้ำคอลเลกชันและอาร์เรย์ง่ายขึ้นมาก เราจะเรียนรู้เกี่ยวกับ Enhanced for loop ใน Java ในบทความนี้ ซึ่งให้วิธีที่ง่ายและกระชับยิ่งขึ้นในการวนซ้ำอาร์เรย์และคอลเลกชั่น
การปรับปรุง for loop ใน Java คืออะไร?
for- loop ที่ปรับปรุงแล้ว หรือที่เรียกว่า for-each loop มอบวิธีที่กระชับในการวนซ้ำคอลเลกชันหรืออาร์เรย์โดยไม่จำเป็นต้องใช้ตัววนซ้ำที่ชัดเจน ไวยากรณ์ของลูปที่ปรับปรุงแล้วเป็นดังนี้:for (elementType element : collection) {
// code block to execute
}
ในรูปแบบนี้elementTypeคือประเภทข้อมูลขององค์ประกอบในคอลเลกชันและองค์ประกอบคือตัวแปรที่แสดงถึงแต่ละองค์ประกอบในคอลเลกชัน คอลเลกชันคือคอลเลกชันที่คุณต้องการทำซ้ำ ลองมาดูตัวอย่างเพื่อดูว่าการปรับปรุงfor loop ทำงาน อย่างไร
ปรับปรุงสำหรับตัวอย่างลูป
สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มที่เราต้องการวนซ้ำและพิมพ์แต่ละองค์ประกอบออกมา เมื่อใช้ for loop ที่ปรับปรุงแล้วเราสามารถทำได้โดยใช้โค้ดเพียงไม่กี่บรรทัด :public class EnhancedForLoop {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
}
}
เอาท์พุท:
1 2 3 4 5
ในตัวอย่างนี้ เราประกาศอาร์เรย์ของจำนวนเต็มที่เรียกว่าตัวเลขและเริ่มต้นด้วยค่าบางค่า จากนั้นเราใช้for loop ที่ปรับปรุงแล้วเพื่อวนซ้ำ อาร์เรย์ ตัวเลขและพิมพ์แต่ละองค์ประกอบ อย่างที่คุณเห็น ไวยากรณ์ของfor loop ที่ปรับปรุงแล้วนั้นง่ายกว่าfor loop แบบดั้งเดิมมาก เราไม่จำเป็นต้องติดตามดัชนีหรือกังวลเกี่ยวกับความยาวของอาร์เรย์ การปรับปรุงfor loop จะดูแลทั้งหมดนี้ให้เรา นอกจากนี้เรายังสามารถใช้for loop ที่ปรับปรุงแล้วเพื่อวนซ้ำคอลเลกชันได้ ลองมาดูตัวอย่างการวนซ้ำArrayList of Strings
// Here is the example of an enhanced for loop to iterate over a collection
import java.util.ArrayList;
public class EnhancedForLoop {
public static void main(String[] args) {
// use the enhanced for loop to iterate over the `names` ArrayList ArrayList<String> names = new ArrayList<String>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
for (String name : names) {
System.out.println(name);
}
}
}
เอาท์พุท:
อลิซ บ็อบ ชาร์ลี
ในตัวอย่างนี้เราสร้างArrayList of Strings ที่เรียกว่าชื่อและเพิ่มค่าบางค่าเข้าไป จากนั้นเราจะใช้for loop ที่ปรับปรุงแล้วเพื่อวนซ้ำชื่อ ArrayListและพิมพ์แต่ละองค์ประกอบออกมา การปรับปรุงfor loop ไม่เพียงแต่ง่ายต่อการอ่านและเขียนเท่านั้น แต่ยังปลอดภัยยิ่งขึ้นอีกด้วย ช่วยลดโอกาสที่จะเกิดข้อผิดพลาดแบบ off-by-one และทำให้โค้ดกระชับและอ่านง่ายขึ้น
GO TO FULL VERSION