for循环

来源:互联网 发布:四轴飞行器pid算法 编辑:程序博客网 时间:2024/04/27 22:10

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


 

原创粉丝点击