for循環

在軟件世界中,不論在開發語言的使用中(如CC++Java等),亦或是數據庫中(SQL)循環語句簡直是無處不在。下面對循環語句作一個小小的彙總。

while(條件條件){

         //循環體

}

 

do{

//循環體

}while(循環條件);

 

for( 起始條件;終止條件 ;循環增量 ){

         //循環增量

}

這些語法符合一般的程序語言的語法。

(以for語句爲例)

 

在高級語言中,for語句的語法大致相近,語法格式大致是:

for(起始條件;終止條件;循環增量){

         //循環休

}

 

在實際的應用過程中,不同的語言,可能會有些許不同。如C++Java兩中語言對for語句的使用,在語法上就稍微有點不同。

java中,可以在for和條件語句中直接申明循環變量for(int i = 0;i<m;i++){} ;而在C++中則不可以這樣使用

 

另外不得不介紹的是,在JDK中提供的增強for循環的機制。比如,你要將從數據庫中取出的一批數據遍歷出來,如下:

從數據庫中取出一批用戶,存儲在list中,常規方法,一般是:

for(int i = 0; i<list.size();i++){

         //循環操作

}

使用這種方式進行循環,有幾個弊端:

1.      每進行一次循環操作,都要計算一下list的大小,如果list的裏面存儲的數據不多的話,這些計算基本沒什麼影響,但如果裏面存儲的數據很多,也就是說,取出list中數據的循環次數很多,每次都計算相應的list的大小,這就會影響程序的執行效率了。

2.      終止條件:i<list.size() ; 有些對於數組瞭解不深的學習者,在for語句中,經常會出現i<=list.size() ;而這樣的終止條件,很顯然會運行出錯(數組越界)

 

爲了解決以上弊端,jdk提供了增強for循環機制,語法如下:

for( 變量類型 變量名 : 需要遍歷的容器 ){

//循環體

}

 

需要注意的是,在java中,使用增強for遍歷map集合與常規的List和Set集合的遍歷方式有些不同。在遍歷之前,需要先將Map集合轉換成Set集合(map.EntrySet(); 該方法的返回類型是 Set<Entry<K , V >>),然後再使用增強for循環進行遍歷。

下面是一個簡單的示例

Map<String,Integer> map = new HashMap<String,Integer>();
		map.put("zhangsan",20);
		map.put("lisi", 16);
		map.put("wangwu", 23);
		
		Set<Entry<String ,Integer>> list = map.entrySet();
		for(Entry<String,Integer> entry:list){
			System.out.println("name:"+entry.getKey()+",age:"+entry.getValue());
		}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章