使用foreach循環(huán)遍歷數(shù)組和集合時(shí),無需獲得數(shù)組和集合的長度,無須根據(jù)索引來訪問數(shù)組元素和集合元素,foreach循環(huán)自動(dòng)遍歷數(shù)組和集合的每一個(gè)元素。
foreach的語句格式:
for(type variableName : array|connection){
//variable自動(dòng)迭代訪問每一個(gè)元素
}
例子:
public class ForEachTest
{
public static void main(String[] args)
{
String[] books = {"java","c","c++","c#","asp"};
for(String book : books)
{
System.out.println(book);
}
}
}
輸出:
java
c
c++
c#
asp
public class ForEachTest
{
public static void main(String[] args)
{
String[] books = {"java","c","c++","c#","asp"};
for(String book : books)
{
book = "hello world!";
System.out.println(book);
}
System.out.println(books[0]);
}
}
輸出:
hello world!
hello world!
hello world!
hello world!
hello world!
java
所以foreach這種循環(huán)一般只適合做數(shù)組的遍歷,提取數(shù)據(jù)顯示等,不適合用于增加刪除和使用下標(biāo)等復(fù)雜的操作。
foreach語句是for語句特殊情況下的增強(qiáng)版本,簡化了編程,提高了代碼的可讀性和安全性(不用怕數(shù)組越界)。相對老的for語句來說是個(gè)很好的補(bǔ)充。
提倡能用foreach的地方就不要再用for了。在用到對集合或者數(shù)組索引的情況下,foreach顯得力不從心,這個(gè)時(shí)候是用for語句的時(shí)候了。foreach一般結(jié)合泛型使用 .