วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2551

Java Programming: For-each Loop

For-each Loop

วัตถุประสงค์

ลูป for ได้รับการเพิ่มขีดความสามารถมาตั้งแต่จาวา ๕ ทำให้การวนรอบของอารเรย์ และคอลเลคชั่นชนิดอื่น ๆ ทำได้สะดวกสบายขึ้นอีก สำหรับ for ลักษณะใหม่นี้เราเรียกว่า enhanced for หรือ for-each (ในภาษา python และภาษาตัวใหม่ ๆ ก็มีเหมือนกันและมันก็ถูกเรียกว่า for each) หรือบางทีถูกเรียกว่าลูป for-in

รูปแบบมาตรฐาน

ตารางข้างล่างเป็นตัวอย่างการใช้งานในรูปแบบของอารเรย์ และ iterator ซึ่งทั้งสองกรณีจะต้องมีตัวแปรเพิ่มอีกหนึ่งตัวใช้แทน index ของลูป for ชนิดเดิม

For-each loopEquivalent for loop
for (type var : arr) {
body-of-loop
}
for (int i = 0; i < arr.length; i++) {
type var = arr[i];
body-of-loop
}
for (type var : coll) {
body-of-loop
}
for (Iterator<type> iter = coll.iterator(); iter.hasNext(); ) {
type var = iter.next();
body-of-loop
}

ตัวอย่าง การรวมค่าทั้งหมดในอารเรย์

นี่คือตัวอย่างลูปทั้งชนิด for-each และ for ลูปปกติ

double[] ar = {1.2, 3.0, 0.8};
int sum = 0;
for (double d : ar) { // d gets successively each value in ar.
sum += d;
}
double[] ar = {1.2, 3.0, 0.8};
int sum = 0;
for (int i = 0; i <> 3; i++) {
sum += ar[i];
}

ที่มา http://www.leepoint.net/notes-java/flow/loops/foreach.html

ไม่มีความคิดเห็น: