`
weishaoxiang
  • 浏览: 96582 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

for 循环的使用技巧

    博客分类:
  • J2EE
阅读更多

for 循环的使用技巧

在程序设计中,经常要进行程序流程的控制,而在此过程中经常用到的就是for循环语句。for循环是编程语言最基本的内容,在最开始学习编程的时候就会学到,也是在编程过程中经常使用的。

这是一个很熟悉的内容,但是如何使用for循环使程序的效率更高。本文所要讲述的也就是在编程过程中for循环的一些使用技巧以及要注意的地方。

for循环的基本结构:

       for( 初始化表达式;判断表达式;递增(递减)表达式){

           执行语句;

       }

这是for循环最基本的结构,也是一个完整的结构。在编程的过程中可以根据自己的需要灵活的使用for循环的其他的变形结构。

以下是for循环的几种常用结构:

       // for循环的几种结构

       for( int i = 0; i < 10; i++ ){

           // do something

       }

 

       for( int i = 0; i < 10; ){

           // do something

           i++;

       }

 

       for( int i = 0;; i++ ){

           if( i < 10 )

              break;

           // do something

       }

 

       int i = 0;

       for( ; i < 10; i++ ){

           // do something

       }

 

       for( int j = 0;; ){

           if( j < 10 )

              break;

           // do something

           j++;

       }

 

       for( ; i < 10; ){

           // do something

           i++;

       }

 

       for( ;; i++ ){

           if( i < 10 )

              break;

           // do something

       }

 

       for( ;; ){

           if( i < 10 )

              break;

           // do something

           i++;

       }

虽然for循环可以写成很多种的结构形式,但是一个for循环执行的基本流程是不变的。

for循环执行的基本流程:

第一步:执行初始化表达式。这个在整个for循环中只执行一次。

第二步:执行判断表达式。在每一次循环中都会执行,如果表达式为false,则结束循环。

第三步:执行递增(递减)表达式。这个在每一次循环的最后执行。

       以上只是for循环的基本流程,具体的还要取决于你所书写的for循环的结构而定。

那么for循环在使用中有那些技巧呢?以下只是个人在开发使用中总结的一些内容。

for 循环的使用技巧

1、不要在判断表达式中使用方法调用

       来看下面这个例子:

ArrayList<Object> list = new ArrayList<Object>( );

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

           // do something

           }

这个在编程的过程中,我们可能会经常这样写。这个for循环看起来很简洁也很清楚,但是这样有什么不好呢?

看一下它的判断表达式i < list.size( ),我们知道for循环的判断表达式在每一次的循环中都会执行一次,那么list.size( )这个方法的调用每一次也都要执行,这无形中就降低了程序的效率了,也是完全没有必要的。

我们不妨把它改成下面这个例子:

ArrayList<Object> list = new ArrayList<Object>( );

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

           // do something

       }

这里只是把list.size( )这个方法的调用放到了for循环的初始化表达式中,因为for循环的初始化表达式是只执行一次而已。

需要注意的一点是,在for循环的初始化表达式中是可以初始化多个变量的,在递增(递减)表达式中也可以有多个表达式,要以逗号间隔,而不是用分号。

如下面的例子:

       for(int i=0, j=1, k=2; i<5 || j>6 && k<8; i++, j--, k=i+j){

           // do something

       }

如果你的JDK版本比较高的话,也可以用以下for循环的高级版本

ArrayList<Object> list = new ArrayList<Object>( );

       for( Object object: list ){

           // do something

       }

2、不要在循环中创建临时对象

来看下面的这个例子:

for( int i = 0; i < 8888; i++ ){

           Object object = new Object( );

           // do something

       }

从循环中可以看到,在每次执行for循环都要创建一个Object的临时对象,而创建一个对象就要占用一定的内存空间,虽然java有垃圾回收机制,但是这也是会在内存中存在很长时间的。

我们不妨把它改成下面这个例子:

       Object obj = null;

       for( int i = 0; i < 8888; i++ ){

           obj = new Object( );

           // do something

       }

虽然也是在每一次的循环中都实例化一个对象,但是在内存中只保存一份对象的引用,而没有创建大量新的临时对象.从而降低了内存的使用

3、不要把与循环无关的流程放到for循环中执行

我们来看个简单的例子:

       int a = 5;

       int b = 8;

       double[] d = new double[10];

       for( int i = 0; i < 10; i++ ){

           d[i] = d[i] / ( a * b );

       }

我们不妨把它改成下面这个例子:

       int a = 5;

       int b = 8;

       int c = a * b;

       for( int i = 0; i < 10; i++ ){

           d[i] = d[i] / c;

       }

两个例子的对比,可以很清楚的看到,在第二个循环中把 ( a * b ) 放到了for循环的外部,也就只执行了一次。这里只是一个简单的表达式运算,如果是更多的执行语句,那么程序的效率也就会提高更多了。

4、不要让你的for循环变成死循环或者不循环

看下面的例子:

       for( int i = 0; i > 10; i++ ){

           // 不循环

       }

       for( int i = 0; i < 10; i-- ){

           // 死循环

       }

这些主要都是符号的书写错误造成的,只要在编程的注意检查自己的代码就可以。而且这种错误在程序单元测试的时候就很容易发现了。

5、不要让你的for循环执行不完全

来看一个例子:

       ArrayList<Object> list = new ArrayList<Object>( );

       for( int i = 1, listSize = list.size( ); i < listSize; i++ ){

           // do something

       }

在初始化表达式中i=1,list的索引的从0开始的,这样就少了一个值取不到了,而且这种错误是不容易被发现的,因为程序不会报错,所以要特别注意。

也不要写成下面这种:

       ArrayList<Object> list = new ArrayList<Object>( );

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

           // do something

       }

判断表达式中i <= listSize使用了等于号,这将会产生下标的越界。

这些主要是在使用for循环的时候,注意循环的边界值,看自己什么时候需要从0开始循环,什么时候需要用等号,就不会出错了。

以上只是自己的一些总结,以后有更多的再补上。希望能给你的编程带来些帮助,也能提高你程序的运行效率。

1
4
分享到:
评论

相关推荐

    for循环快速掌握技巧

    for循环的学习就是这么简单,教你通过从实例由简单逐步复杂的过程中快速掌握for循环的应用,几个实例囊括了for循环所有知识点

    vue-for循环嵌套操作示例

    在本篇文档中,我们主要学习了Vue.js框架中关于for循环嵌套操作的知识点。Vue.js是一套构建用户界面的渐进式JavaScript框架,其核心库只关注视图层,易于上手,同时也能够与其它库或已有项目整合。在文档中,我们...

    java基础for循环练习题

    在"java基础for循环练习题"中,我们通常会遇到几种类型的`for`循环,包括基本的`for`循环、增强型`for`循环(也称为foreach循环),以及在数组和集合中的应用。下面我们将深入探讨这些知识点。 1. **基本的for循环*...

    python基础教程:Python中在for循环中嵌套使用if和else语句的技巧.pdf

    在Python编程语言中,`for`循环和`if`、`else`语句的结合使用是一种强大的技巧,尤其是在处理列表和其他数据结构时。本教程将深入探讨如何在`for`循环内部嵌套`if`和`else`语句,以及它们在创建列表推导式(List ...

    编译原理课设for循环

    "编译原理课设for循环"的主题聚焦于实现对于编程语言中for循环结构的编译处理。这个项目可能包括了词法分析、语法分析以及代码生成等关键步骤,采用简单优先法作为解析策略,并输出三地址代码。 首先,我们需要了解...

    Java循环技巧大全

    ### Java循环技巧大全 在Java编程中,循环结构是实现重复执行特定代码块的基本方法之一。本文将深入探讨Java中的循环技巧,特别是如何利用不同类型的循环控制语句来优化程序性能,提高代码可读性和可维护性。 ####...

    For循环(Pascal)

    通过运行这些源代码,你可以看到`for`循环在不同场景下的应用,包括错误处理和优化技巧。 六、实践应用 1. 数组遍历:`for`循环常用于遍历数组的所有元素,进行计算或比较。 2. 循环计数:计算一定次数的操作,如...

    JAVA语言 FOR循环语句的例子

    代码示例展示了如何使用嵌套的FOR循环来打印一个数字三角形。下面将详细介绍这段代码的工作原理及其背后的逻辑。 #### 四、示例代码详解 ```java public class For3 { public static void main(String[] args) { ...

    VC++(chapter03) 嵌套for循环的几种常见打印图形和运用

    通过实践这些例子,不仅可以加深对for循环的理解,还可以提高编程技巧,为解决更复杂的问题打下坚实的基础。在实际开发中,熟练掌握嵌套for循环可以极大地提高代码的效率和可读性。通过不断练习和实验,你可以创造出...

    掌握Python循环控制:for循环与while循环的深入指南.pdf

    Python提供了两种主要的循环结构:for循环和while循环。for循环通常用于遍历序列(如列表、元组、字典等)或迭代器,而while循环则根据条件重复执行代码块,直到条件不再为真。本文将详细介绍如何在Python中使用这两...

    python基础教程:Python中在for循环中嵌套使用if和else语句的技巧

    Python的语法糖非常强大,比如Python中在for循环中嵌套使用if和else语句的技巧便十分给力,下面我们就举几个例子来看详细的用法: for…[if]…构建List (List comprehension) 1.简单的for…[if]…语句 Python中,for...

    01-Java语言基础(语句-For循环嵌套)

    For循环嵌套是指在一个For循环内部再嵌套另一个For循环。这种结构允许我们处理更复杂的问题,例如处理二维数组或进行多层遍历。下面是一个简单的嵌套For循环示例,用于打印9x9乘法表: ```java for (int i = 1; i ;...

    Python中的For循环:深入探讨、示例代码和实用技巧

    除了这些基本用法,for循环还可以与其他Python特性结合使用,如条件语句(if-else)和循环控制(break, continue)。以下是一些示例代码: **示例 1:** 计算列表元素总和 ```python numbers = [1, 2, 3, 4, 5] ...

    编写v-for循环的技巧汇总

    在 Vue.js 中,v-for 循环是每个项目都会使用的东西,它允许您在模板代码中编写 for 循环。 在最基本的用法中,它们的用法如下。 &lt;li v-for=product&gt; {{ product.name }} 但是,在本文中,我将介绍六种方法来...

    For循环嵌套要点和难点具体案例

    在编程领域,循环是控制程序流程的关键结构之一,而for循环作为最常见的循环类型,被广泛应用于各种场景。本文将深入探讨for循环的嵌套及其在实际应用中的要点和难点,帮助开发者更好地理解和运用这一技术。 一、...

    C语言中for循环嵌套语句的使用.pdf

    ### C语言中for循环嵌套语句的使用 在C语言编程中,循环结构是实现重复执行特定任务的基础工具之一。其中,`for`循环因其简洁性和灵活性而被广泛使用。当需要处理多维数组或多层数据结构时,单一的`for`循环往往...

    Python中在for循环中嵌套使用if和else语句的技巧

    ### Python中在for循环中嵌套使用if和else语句的技巧 #### 一、前言 Python作为一种高级编程语言,其语法设计简洁且功能强大,尤其体现在对循环和条件语句的支持上。本文将详细介绍如何在Python的for循环中嵌套...

    Shell脚本用for循环遍历参数的方法技巧

    本文将详细讲解如何在Shell脚本中使用`for`循环遍历参数,并介绍其中的一些小技巧。 1. **基本的参数遍历** 在Shell脚本中,可以通过`$1`, `$2`, `$3`等变量来访问传递给脚本的参数,但当参数数量不确定时,使用`...

    Java for循环性能优化实现解析

    Java for循环性能优化实现解析 Java for循环性能优化实现解析是 Java 编程中非常重要的一部分,主要讨论了Java for循环性能优化的实现解析。下面是从文件中提炼出的相关知识点: 1. 嵌套循环优化 在Java中,嵌套...

Global site tag (gtag.js) - Google Analytics