© Monstar Studio/Shutterstock.com
วันนี้เรากำลังตรวจสอบ For-Each Loop ของ Java ซึ่งเป็นส่วนเสริมของ For loop แบบคลาสสิก ลูปเหล่านี้ถูกเพิ่มเข้ามาใน Java5 ในปี 2004 และในปัจจุบันเป็นเครื่องมือสำคัญเมื่อทำงานกับอาร์เรย์และคอลเลกชั่น
แผนคือการสอนคุณเกี่ยวกับพื้นฐาน ซึ่งนำมาซึ่งความเข้าใจตรรกะเบื้องหลังลูป For-Each และรวมถึง ไวยากรณ์ นี่คือเครื่องมือที่คุณสามารถใช้ได้ในเกือบทุกโครงการเพื่อให้โปรแกรมของคุณมีประสิทธิภาพการทำงานและประสิทธิภาพเพิ่มขึ้น
อะไร For-Each Loops คืออะไร
ฟังก์ชันหลักของ For-Each Loops คือการจัดการกับอาร์เรย์ แนวคิดก็คือการวนซ้ำนี้ให้พลังแก่คุณในการวนซ้ำผ่านรายการของอาร์เรย์หรือคอลเลกชัน
แต่ละรายการพร้อมสำหรับการปรับเปลี่ยนภายในการทำงานของเนื้อความของลูป จากนั้นผลตอบแทนจะเป็นอาร์เรย์ใหม่ คุณสามารถใช้ตรรกะใดก็ได้ใน For-Each ลูป ซึ่งหมายความว่าผลตอบแทนจากการลงทุนสำหรับเครื่องมือนี้ไม่ได้อยู่ในแผนภูมิ: คุณสามารถนำไปใช้กับอาร์เรย์ใดก็ได้ที่คุณนึกออก
ลองนึกภาพว่าคุณกำลังทำงานกับรายชื่อ อีเมล สถานที่ หรือ ฐานข้อมูลใด ๆ ที่มีความยาว ตอนนี้ ลองจินตนาการว่าคุณสามารถเตรียมมันสำหรับการดำเนินการต่อไปได้ด้วยคำสั่งง่ายๆ เพียงคำสั่งเดียว อย่างแน่นอน.
ตอนนี้ เรามาดูวิธีสร้างและใช้ For-Each ลูป
ตัวอย่างโค้ด
ไวยากรณ์ของ For-Each ลูปนั้นชัดเจนและเข้าใจง่าย หากคุณคุ้นเคยกับ Java
สำหรับ (ประเภท var: array) { คำสั่งที่ใช้ var; }
เราเริ่มต้นด้วยคำหลักสำหรับตามด้วยการประกาศอาร์เรย์ที่เราต้องการวนซ้ำ จากนั้นเราประกาศตรรกะที่เราต้องการใช้ (ระหว่างวงเล็บปีกกา)
ตอนนี้มาเขียนโปรแกรมโดยใช้แนวคิดเหล่านี้
class First { public static void main(String[] args) { int array[]={1,2,3,4,5}; สำหรับ (องค์ประกอบ int: อาร์เรย์) System.out.print (องค์ประกอบ +””); } }//Output//1 2 3 4 5
ในตัวอย่างข้างต้น ขั้นแรกเราได้สร้างอาร์เรย์ที่มีบางรายการเพื่อให้สามารถประมวลผลได้ หลังจากนั้นเราประกาศ For-Each ลูปที่แท้จริง
การประกาศประเภทของอาร์เรย์ที่เราใช้ For-Each นั้นสำคัญมาก เนื่องจากวิธีนี้มักจะหลีกเลี่ยงข้อผิดพลาดและจุดบกพร่อง
สุดท้าย การวนซ้ำจะส่งกลับแต่ละรายการ ในทุกการวนซ้ำ ดังที่เห็นในส่วนเอาต์พุต
โปรแกรมเมอร์ทุกคนชอบประสิทธิภาพ ข้อดีอย่างหนึ่งของ For-Each ลูปคือหลีกเลี่ยงขั้นตอนพิเศษที่จำเป็นสำหรับการประกาศตรรกะของ For ลูปปกติ มาดูสิ่งนี้ในตัวอย่างจริง:
//For loop syntax for (int i=0; i
ทั้งสองเมธอดให้ผลลัพธ์เหมือนกัน แต่ For-Each Loop เป็นผู้ชนะอย่างชัดเจน ตรรกะคือ สะอาดกว่าและเข้าใจง่าย ทำให้โปรแกรมเมอร์มือใหม่สามารถเข้าถึงฟังก์ชันต่างๆ ได้มากขึ้น
อย่างไรก็ตาม แม้ว่า For-Each ลูปจะดูสะอาดตาขึ้น แต่ก็มีบางสิ่งที่พวกเขาทำไม่ได้ เรามาพูดถึงเรื่องนี้กันใน-ความลึก
ข้อเสียของ For-Each Loops
ปัญหาแรกของ For-Each Loops คือไม่สามารถแก้ไข Array เดิมได้ นี่ไม่ใช่ปัญหาเมื่อทำงานกับโปรแกรมไดนามิก ที่ต้องบันทึกสถานะเริ่มต้น แต่อาจมีบางสถานการณ์ที่ For Loop แบบคลาสสิกจะเป็นตัวเลือกที่ดีกว่า ลองดูสิ่งนี้ในโค้ด:
for (int:marks) { num=num*2; }//the อาร์เรย์เดิมยังคงเหมือนเดิม
โชคไม่ดีที่ For-Each ลูปไม่สามารถติดตามดัชนีภายในอาร์เรย์ได้ ดังนั้น เราจึงไม่สามารถใช้ตรรกะใดๆ ที่แสดงถึงการได้รับดัชนีขององค์ประกอบ
สำหรับ ( จำนวน int: ตัวเลข) { ถ้า ( จำนวน==เป้าหมาย) { กลับ ???;//ไม่พบดัชนี } }
For-Each ลูปไม่สามารถวนย้อนกลับผ่านอาร์เรย์ได้ นอกจากนี้ การซ้อนลูปและบูลีนเป็นพื้นที่อื่นๆ ที่การใช้ For-Each Loop อาจไม่ใช่ความคิดที่ดี
เหตุใดจึงใช้ For-Each Loops?
ตามชื่อของมัน การวนซ้ำนี้ ตรวจสอบทุกรายการของคอลเลกชันหรืออาร์เรย์ สิ่งนี้ช่วยให้เราสามารถประมวลผลฐานข้อมูลขนาดใหญ่ได้อย่างง่ายดายและมีประสิทธิภาพ
การวนซ้ำข้อมูลเป็นงานประจำวันสำหรับโปรแกรมเมอร์ ดังนั้นเครื่องมือใดๆ ที่เราสามารถเพิ่มเข้าไปในชุดทักษะของเราซึ่งจะช่วยได้ควรได้รับการต้อนรับด้วยอาวุธที่เปิดกว้าง.
เมื่อใช้ For-Each ลูป ข้อดีของโค้ดที่สะอาดและเข้าใจง่ายก็คุ้มค่าที่จะขาดฟีเจอร์บางอย่าง เช่น การปรับเปลี่ยนอาร์เรย์ คุณสามารถใช้ For Loop แบบคลาสสิกได้ตลอดเวลาหากต้องการฟังก์ชันเฉพาะนี้ ดังนั้น ไม่ต้องกังวลหากคุณไม่สามารถใช้โค้ดที่เขียนง่ายกว่านี้ได้ตลอดเวลา แต่โปรดจำไว้สำหรับสถานการณ์ที่อาจช่วยให้คุณประหยัดเวลาในการทำงานได้!
มาสำรวจฟังก์ชันอื่นๆ ของ For-แต่ละวง สิ่งนี้จะให้คำแนะนำเกี่ยวกับสิ่งที่สามารถใช้ร่วมกับเครื่องมืออื่นๆ ได้
สมมติว่าเรามีชุดของอาร์เรย์ที่มีข้อมูลอยู่ในนั้น เป้าหมายของเราคือทำให้ข้อมูลนี้แบนราบเป็นอาร์เรย์เดียวด้วย For-Each loop ลองดูสิ่งนี้:
//stream of arrays Input: arr[][]={{1,2,3},{4,5,6},{7,8,9}} Output: [1 , 2, 3, 4, 5, 6, 7, 8, 9]
อย่างที่คุณเห็นในโค้ด เรามีสตรีมของอาร์เรย์ที่พร้อมสำหรับการประมวลผล แต่ละอาร์เรย์ประกอบด้วยชุดตัวเลข โค้ดที่เราจะเขียนจะรวมเมธอด Java อื่นๆ ไว้ ดังนั้นใช้โอกาสนี้เป็นโอกาสทดสอบความเข้าใจของคุณเกี่ยวกับภาษาโค้ดนี้!
มาดูกันว่าโค้ดแต่ละเซ็กเมนต์ทำงานอย่างไร
class exmpl {//ฟังก์ชั่นหลัก สตรีมแบบคงที่สาธารณะ flattenStream (T [][] อาร์เรย์) { รายการ list=new ArrayList>(); สำหรับ (T[] อาร์เรย์: อาร์เรย์) { Arrays.stream(อาร์เรย์).forEach(รายการ::เพิ่ม); } ส่งคืน list.stream (); } โมฆะสาธารณะคงที่ main(String[] args) { จำนวนเต็ม [][] arr={ {1,2,3}, {4,5,6}, {7,8,9} }; จำนวนเต็ม [] flatArray=flattenStream (arr).toArray (จำนวนเต็ม []:: ใหม่); System.out.println(Arrays.toString(flatArray)); } }
ขั้นแรก เราสร้างฟังก์ชันที่มีทุกอย่างอื่นๆ และประกาศรายการเพื่อรวบรวมรายการ
ขั้นตอนต่อไปคือการใช้ For-Each ลูปรวมกับเมธอด stream() เมื่อพิจารณาจากรายการตัวเลขแล้ว แต่ละรายการจะเป็นสตรีมของรายการ ผลตอบแทนสุดท้าย นอกวง For-Each คือรายการที่แปลงเป็นกระแสข้อมูลเดียว
เมื่อสตรีมพร้อม ก็ถึงเวลาทำให้อาร์เรย์แบนราบ เราประกาศแต่ละหมายเลข แล้วเรียกใช้ฟังก์ชันที่เราเข้ารหัสไว้ก่อนหน้านี้ในแต่ละหมายเลข ฟังก์ชันนี้รับข้อมูลและส่งคืนทุกอย่างในอาร์เรย์เดียว
นี่เป็นเพียงตัวอย่างเล็กๆ น้อยๆ ที่แสดงให้เห็นว่าเครื่องมือพื้นฐานเหล่านี้ช่วยให้คุณจัดการข้อมูลในฐานะโปรแกรมเมอร์ได้อย่างไร คุณสามารถเล่นกับข้อมูลและหาวิธีใหม่ๆ ในการทำให้โค้ดของคุณมีประสิทธิภาพมากขึ้นและแก้ไขจุดบกพร่องได้ง่ายขึ้น
บทสรุป: วิธีใช้ For-Each ใน Java
For-แต่ละลูปเป็นวิธีที่ง่ายที่สุดในการวนซ้ำผ่านอาร์เรย์หรือคอลเลกชัน รายการที่รวบรวมในอาร์เรย์ที่เลือกจะได้รับการประมวลผลด้วยฟังก์ชันที่เราต้องการ นอกจากนี้ การประมวลผลนี้สามารถทำได้โดยใช้เมธอดและฟังก์ชันต่างๆ ร่วมกัน
โปรดจำไว้ว่าลูปเหล่านี้ไม่มีคุณสมบัติบางอย่าง โดยทั่วไป ไม่รองรับการวนซ้ำแบบย้อนกลับ การซ้อนลูป และการติดตามดัชนี ใช้ For Loop แบบคลาสสิกเสมอเพื่อหลีกเลี่ยงจุดบกพร่องหากคุณต้องการฟังก์ชันเหล่านี้
อย่างไรก็ตาม ความเป็นไปได้ในการพัฒนานั้นไร้ขีดจำกัดเมื่อคุณรวม For-Each Loop กับเมธอดอื่นๆ เช่น stream() นี่คือสิ่งที่เราอยากจะฝากไว้กับคุณ มองหาวิธีใหม่ๆ ในการขยายขอบฟ้าของคุณในฐานะโปรแกรมเมอร์อยู่เสมอ และอย่าเลือกชุดเครื่องมือเพียงชุดเดียว
เราขอแนะนำให้ดูข้อมูลเพิ่มเติมที่เอกสารทางการของ Java
วิธีใช้สำหรับแต่ละลูปในคำถามที่พบบ่อยของ Java (คำถามที่พบบ่อย)
Java พัฒนาขึ้นเมื่อใด
Java เดิม วางจำหน่ายในเดือนพฤษภาคม 1995 และพัฒนาโดย James Gosling ที่ Sun Microsystem เป็นหนึ่งในภาษาโปรแกรมเชิงวัตถุที่ได้รับความนิยมมากที่สุด โดยมีผู้ใช้ทั่วไป 9 ล้านคนต่อวัน
ฉันจะติดตั้ง Java ได้อย่างไร
วิธีติดตั้ง Java คุณต้องไปที่ส่วนดาวน์โหลดบนเว็บไซต์ของ Java จากนั้นเลือกตัวติดตั้งที่ถูกต้องสำหรับระบบของคุณ นั่นฟรี! Java พร้อมใช้งานสำหรับ Windows, Mac, Linux และ Solaris
For classic คืออะไร
A For loop เป็นวิธีการสร้างซ้ำ ด้วยสภาพและร่างกาย. อนุญาตให้ผู้ใช้เรียกใช้ส่วนรหัสซ้ำ ๆ จนกว่าจะถึงเงื่อนไข For loop เป็นทางเลือกสำหรับลูป while ซึ่งใช้เมื่อจำนวนการวนซ้ำที่ต้องการคงที่
Java For-Each loop ทำงานอย่างไร
For-Each ลูปทำงานคล้ายกับคลาสสิกสำหรับลูป เมื่อใช้ ผลตอบแทนจะเหมือนกันกับทั้งสองคำสั่ง แต่ด้วย For-Each ลูป ไวยากรณ์สามารถเข้าถึงได้มากขึ้น
ฉันสามารถใช้ For-Each ลูปกับฟังก์ชันที่อิงตามดัชนีได้หรือไม่
น่าเศร้าที่ไม่มี For-Each ไม่สามารถติดตามตำแหน่งดัชนีในอาร์เรย์ได้ โชคดีที่ For loop แบบคลาสสิกช่วยให้คุณใช้ตรรกะนี้ได้โดยไม่มีข้อผิดพลาด