在软件世界中,不论在开发语言的使用中(如C、C++、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());
}