微立顶科技

新闻资讯

创新 服务 价值

  递归与循环浅析

发布日期:2022/10/6 23:08:41      浏览量:

一、递归与循环的对比

  • 递归会带来大量的函数调用。这是不好的

  • 在计算环节特别大的前提下,递归就是不好的,因为递归是先调用,再计算。

    • 在大量计算的前提下可能会造成栈溢出(StackOverFlow)
    • 如下图:

    

  • 循环是先计算再调用,计算完后会调用的方法会从栈中抹去,最后将结果输出

  • 能不用递归就不用递归
  • 小计算可以考虑用递归,大计算就不考虑了

二、递归讲解

1、概念

  • A方法调用B方法,我们很容易理解

  • 递归就是:A方法调用A方法!就是自己调用自己

2、递归的用处

  • 递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量

  • 递归的能力在于用有限的语句来定义对象的无限集合

3、递归结构包含两个部分

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环

  • 递归体:什么时候需要调用自身方法

4、代码如下

         

5、递归的坏处

  • 递归会带来大量的函数调用。这是不好的

  • 在计算环节特别大的前提下,递归就是不好的,因为递归是先调用,再计算。循环是先计算再调用

三、循环讲解

1、while 循环

  • 基本结构

    1 while( 布尔表达式 ){ 2 //循环结构  3 }
  • 只要布尔表达式为true,循环就会一直执行下去

  • 循环条件一直为true就会造成无限循环【死循环】,这是在正常程序下需要避免的

  • 少部分情况下需要循环一直执行下去。例如服务器的请求响应监听等

  • 复制代码
    1 //例子:从1加到100求和 2 //代码主要部分 3 while(i<=100){ 4 sum+=i; 5 i++; 6 }
    复制代码

2、do...while循环

  • 对于while’语句而言,如果不满足条件,则不能进入循环,但有时候我们需要即使不满足条件的情况下,程序也要至少执行一次

  • do.....while循环和while循环相似,不同的是:do....while循环至少会执行一次

  • 语法结构

    1 do{ 2 //代码语句 3 }while(布尔表达式);
  • while与do-while的区别

    while是先判断后执行。do-while是先执行后判断

    do-while总是保证循环体至少会被循环一次!这是它们的主要区别

  • 复制代码
    1 //例子:从1加到100求和 2 //代码主要部分 3 do{ 4 sum+=i; 5 i++; 6 }while(i<=100); 
    复制代码

3、for 循环

  • 虽然所有的循环结构都可以使用while和do....while表示,但Java提供了另一种语句:for循环

  • for循环相较与其它二者更高效,执行速度快

  • 格式如下

    1 for(初始化;布尔表达式;迭代式){ 2 //代码语句 3 }

4、在Java5种引入了一种主要用于数组的增强型for循环

  • 主要是用来遍历数组集合

  • 格式如下:

    复制代码
     1 for(声明语句:表达式){  2 //代码语句  3  }  4   5   6 //例子如下:  7 int[] numbers={1,2,3,4,5};  8 for(int x:numbers){  9 System.out.println("数组中的元素为"+x) 10 }
    复制代码
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。

    • 其作用域限定在循环语句块,其值与此时数组元素的值相等。

  • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

  • 另加:数组的静态与动态定义



  业务实施流程

需求调研 →

团队组建和动员 →

数据初始化 →

调试完善 →

解决方案和选型 →

硬件网络部署 →

系统部署试运行 →

系统正式上线 →

合作协议

系统开发/整合

制作文档和员工培训

售后服务

马上咨询: 如果您有业务方面的问题或者需求,欢迎您咨询!我们带来的不仅仅是技术,还有行业经验积累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     联系人:石先生/雷先生