for

ลูป for ใช้สำหรับการวนลูปที่มีจำนวนรอบแน่นอน เช่นถ้าต้องการวน 5 รอบ ให้เขียนว่า

public class Test {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("hi");
        }
    }
}

ลูป enhanced for ใช้วนลูปเพื่อดึงข้อมูลจากอาร์เรย์ได้

public class Test {
    public static void main(String[] args) {
        int[] a = {1, 3, 5, 7};
        for (int i : a) {
            System.out.println(i);
        }
    }
}

หรือใช้ลูป enhanced for ดึงข้อมูลจาก Collection (หรือคลาสใดๆที่ implements Iterable) ก็ได้

import java.util.*;

public class Test {
    public static void main(String[] args) {
        Collection<String> col = new ArrayList();
        col.add("somchai");
        col.add("somying");
        col.add("somporn");

        for (String s : col) {
            System.out.println(s);
        }
    }
}

หรือใช้ลูป enhanced for ดึงข้อมูลจากคลาสที่ implements Iterable

import java.util.Iterator;
import java.util.NoSuchElementException;

public class MyIterable implements Iterable<String>, Iterator<String> {
    private int count;
    private String a = "ant";
    private String b = "bat";
    private String c = "cat";

    @Override
    public Iterator<String> iterator() {
        return this;
    }

    @Override
    public boolean hasNext() {
        return count < 3;
    }

    @Override
    public String next() {
        count++;
        switch (count) {
            case 1:
                return a;
            case 2:
                return b;
            case 3:
                return c;
            default:
                throw new NoSuchElementException();
        }
    }

    @Override
    public void remove() {
        throw new UnsupportedOperationException();
    }
}
public class Test {
    public static void main(String[] args) {
        MyIterable mi = new MyIterable();
        for (String s : mi) {
            System.out.println(s);
        }
    }
}

เอาท์พุทคือ
ant
bat
cat

หนังสือ เขียนโปรแกรม Java เบื้องต้น

หนังสือ Java Keywords

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

Advertisements

One thought on “for

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s