ความแตกต่างที่สำคัญ – for Loop vs foreach Loop
ทั้ง for loop และ foreach loop เป็นโครงสร้างควบคุมที่ใช้ในการทำซ้ำกลุ่มของคำสั่ง มีโครงสร้างการควบคุมการทำซ้ำในการเขียนโปรแกรมเพื่อดำเนินการบล็อกคำสั่งซ้ำแล้วซ้ำอีก โครงสร้างการควบคุมทั่วไปหนึ่งโครงสร้างสำหรับลูป A for loop คือโครงสร้างโฟลว์การควบคุมที่ใช้สำหรับการวนซ้ำที่อนุญาตให้รันโค้ดซ้ำๆ ประกอบด้วยการเริ่มต้น นิพจน์ทดสอบ และนิพจน์การอัพเดต ข้อความที่ต้องทำซ้ำจะรวมอยู่ในวงเล็บปีกกา ลูป foreach ได้รับการปรับปรุงสำหรับลูป ช่วยเพิ่มความสามารถในการอ่านโค้ดและเขียนได้ง่ายทั้ง for loop และ foreach loop ใช้เพื่อทำซ้ำชุดคำสั่ง แต่ไวยากรณ์ต่างกัน ความแตกต่างที่สำคัญระหว่าง for Loop และ foreach loop คือ for loop เป็นโครงสร้างการควบคุมวัตถุประสงค์ทั่วไป ในขณะที่ foreach loop เป็นการปรับปรุงสำหรับลูปที่ใช้ได้กับอาร์เรย์และคอลเลกชันเท่านั้น
สำหรับลูปคืออะไร
for loop เป็นโครงสร้างการทำซ้ำทั่วไป ช่วยทำซ้ำผ่านคำสั่งหรือชุดคำสั่งในโปรแกรม ไวยากรณ์ของ for loop มีดังต่อไปนี้
for(เริ่มต้น; ทดสอบนิพจน์; ปรับปรุงนิพจน์){
// รหัสในลูป for
}
การเริ่มต้นเกิดขึ้นก่อน จากนั้นตรวจสอบนิพจน์การทดสอบ หากคำตอบที่ประเมินแล้วเป็นจริง โค้ดภายใน for loop จะทำงาน ที่ส่วนท้ายของคำสั่งสุดท้ายของ for loop นิพจน์การอัพเดทจะถูกประเมิน จากนั้นนิพจน์ทดสอบจะถูกประเมินอีกครั้ง หากเป็นจริง โค้ดภายใน for loop จะทำงานที่ส่วนท้ายของลูป for นิพจน์การอัพเดทจะถูกประเมินอีกครั้งและตรวจสอบด้วยนิพจน์ทดสอบ กระบวนการนี้ทำซ้ำจนกว่านิพจน์ทดสอบจะกลายเป็นเท็จ เมื่อมันกลายเป็นเท็จ for loop จะสิ้นสุดลง
รูปที่ 01: โปรแกรมสำหรับลูปและลูป foreach
ตามโปรแกรมข้างบนนี้ array1 สามารถเก็บอิลิเมนต์ของชนิดจำนวนเต็มได้หลายอิลิเมนต์ ในลูป for i คือ 0 ซึ่งน้อยกว่า 5 ดังนั้นองค์ประกอบดัชนีที่ 0 ของ array1 จะถูกพิมพ์ มันคือหมายเลข 10 จากนั้น i จะเพิ่มขึ้นเนื่องจากนิพจน์การอัพเดท ตอนนี้ค่า i คือ 1 ซึ่งน้อยกว่า 5 ดังนั้นองค์ประกอบดัชนีที่ 1 ของ array1 จะถูกพิมพ์ อีกครั้ง i เพิ่มขึ้น กระบวนการนี้ดำเนินต่อไป เมื่อค่า i กลายเป็น 5 นิพจน์ทดสอบจะเป็นเท็จ เนื่องจากมีค่าไม่ต่ำกว่า 5ดังนั้นการวนซ้ำจึงสิ้นสุดลง
foreach Loop คืออะไร
foreach loop เป็นวิธีที่สะดวกในการดึงข้อมูลองค์ประกอบของอาร์เรย์หรือคอลเลกชัน สามารถใช้แทน for loop ได้ มันถูกเรียกว่า foreach loop เพราะมันวนซ้ำผ่านแต่ละองค์ประกอบของอาร์เรย์หรือคอลเลกชัน ไวยากรณ์ของลูป foreach มีดังนี้
for(รายการประเภทข้อมูล: คอลเลกชัน){
//โค้ดในแต่ละลูป
}
คอลเลกชันคืออาร์เรย์หรือคอลเล็กชันที่ควรทำซ้ำ รายการนี้เป็นองค์ประกอบเดียวจากคอลเล็กชัน foreach วนซ้ำผ่านแต่ละองค์ประกอบและเก็บองค์ประกอบนั้นในรายการตัวแปร จากนั้นดำเนินการคำสั่งภายในลูป foreach
ตามโปรแกรมด้านบน array1 เก็บจำนวนเต็มหลายจำนวน Enhanced for loop ใช้เพื่อวนซ้ำองค์ประกอบของอาร์เรย์ แต่ละองค์ประกอบจะถูกเก็บไว้ในตัวแปร i และโค้ดภายใน foreach loop จะดำเนินการforeach loop ทำงานแบบเดียวกับ for loop แต่อ่านง่ายและเขียนง่ายกว่า ดังนั้นจึงเรียกว่า 'enhanced for loop'
ความคล้ายคลึงกันระหว่างลูปและ foreach คืออะไร
ทั้ง for loop และ foreach loop สามารถใช้ในการดำเนินการชุดคำสั่งได้หลายครั้ง
for loop กับ foreach loop ต่างกันอย่างไร
สำหรับลูป vs foreach ลูป |
|
for loop เป็นโครงสร้างการควบคุมสำหรับการระบุการวนซ้ำที่อนุญาตให้เรียกใช้โค้ดซ้ำๆ ได้ | foreach loop เป็นโครงสร้างการควบคุมสำหรับการสำรวจรายการในอาร์เรย์หรือคอลเลกชัน |
การดึงองค์ประกอบ | |
A สำหรับลูปสามารถใช้เพื่อดึงชุดองค์ประกอบเฉพาะ | ลูป foreach ไม่สามารถใช้เพื่อดึงชุดขององค์ประกอบเฉพาะ |
การอ่าน | |
for loop นั้นอ่านและเขียนยากกว่า foreach loop | foreach loop นั้นอ่านและเขียนง่ายกว่า for loop |
การใช้งาน | |
วง for ถูกใช้เป็นวงวนวัตถุประสงค์ทั่วไป | foreach loop ใช้สำหรับอาร์เรย์และคอลเลกชัน |
สรุป – for Loop vs foreach Loop
ในการเขียนโปรแกรม บางครั้งจำเป็นต้องทำซ้ำรหัส for loop มักใช้เพื่อให้บรรลุภารกิจนี้ A for loop คือโครงสร้างโฟลว์การควบคุมที่ใช้สำหรับการวนซ้ำที่อนุญาตให้รันโค้ดซ้ำๆ foreach loop ได้รับการปรับปรุงสำหรับลูปที่อ่านและเขียนได้ง่ายความแตกต่างระหว่าง for Loop และ foreach loop คือ for loop เป็นโครงสร้างการควบคุมวัตถุประสงค์ทั่วไป ในขณะที่ foreach loop เป็นการปรับปรุงสำหรับลูปที่ใช้ได้กับอาร์เรย์และคอลเลกชันเท่านั้น