当前位置: 首页 > news >正文

java递归函数例子_Java递归函数详解附案例

递归函数在Java语言中得到了广泛的应用,它使得程序的编写过程更加的清晰明了。对Java初学者来讲,递归函数是需要学习的一个重要知识点。本文将附上案例和演示代码,具体为大家介绍递归函数的概念、要素以及和循环的区别。想要学习递归函数的小伙伴,赶紧一起来梳理下相关的知识点吧!

a6a2922025bd684c7228a28309d6c4c3.png

1、递归函数的概念

递归是一种针对使用简单的循环难以编程实现的问題,提供优雅解决方案的技术。简单来说,递归方法是调用自身的方法。在编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。

2、实现递归的三要素

(1)一定有一种可以退出程序的情况;

(2)总是在尝试将一个问题化简到更小的规模;

(3)父问题与子问题不能有重叠的部分。

3、Java递归算法案例

Java中的递归函数如果没终止条件会造成死循环,所以递归代码里要有结束自调自的条件。接下来通过一个案例来学习如何使用递归算法。

package QianFeng03;

//阶乘(递归算法)

public class FactorialTest {

public static void main(String[] args){

int result = factor1( 10);

System.out.println(result);

int result1 = factor(10);

System.out.println("递归算法:内存消耗大容易内存溢出"+result1);

}

//---------------递归算法,方法本身调用自己----------------------

public static int factor(int num){

if (num==1)

return 1;

return num*factor(num-1);

}

//---------------普通计算----------------------

public static int factor1(int num){

int result = num;

int i= num-1;

do{

result = result*i;

i--;

}while (i>1);

return result;

}

}

4、递归函数与循环的关系:

(1)联系:

都是通过控制一个变量的边界(或者多个),来改变多个变量为了得到所需要的值,而反复而执行的;都是按照预先设计好的推断实现某一个值求取;(请注意,在这里循环要更注重过程,而递归偏结果一点)

(2)区别:

递归通常是逆向思维居多,“递”和“归”不一定容易发现;而循环从开始条件到结束条件,包括中间循环变量,都需要表达出来。简单的来说就是:用循环能实现的,递归一般可以实现,但是能用递归实现的,循环不一定能。因为有些题目①只注重循环的结束条件和循环过程,而往往这个结束条件不易表达;②只注重循环的次数而不注重循环的开始条件和结束条件。

关于Java递归函数以及案例详解就讲到这里了,希望对刚刚入门学习Java的初学者能够有一定的帮助。关于更多的Java基础学习的内容,尽在博学谷在线IT培训平台!


http://www.taodudu.cc/news/show-3568192.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 递归函数python基例_python基础——递归函数
  • JS递归函数
  • 【JS】递归函数
  • C语言的递归函数
  • C语言 递归函数
  • 深入理解递归函数
  • 递归 函数
  • 什么是递归函数
  • 递归函数详解
  • 【C语言】函数递归详解
  • 为ListViewItem 添加双击事件
  • listView.Item 和subitem
  • Android基础入门教程——2.4.8 ListView Item多布局的实现
  • 对于点击listview item的数据传递
  • listview设置item高度或间距
  • WPF对ListView的ListViewItem添加双击事件
  • Android ListView Item与子控件焦点问题
  • 自定义ListView item的例子
  • WPF listviewItem 鼠标双击事件
  • Winform-ListViewItem的Text 与其 SubItems[0].Text关系
  • WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应
  • Android ListView item信息显示不全
  • Android—ListView Item 展开动画效果
  • WPF ListView 数据绑定后,ListViewItem如何拥有ContextMenu
  • Android ListView item显示时高度变化
  • 解决WPF ListView虚拟化ListViewItem的IsSelected属性MVVM双向绑定bool值后出现的绑定错乱的问题
  • 安卓listview item内部控件操作方法
  • ListView 实现斑马线颜色间隔效果(ListViewItem颜色间隔显示)
  • ListView Item侧滑菜单
  • listView item 增加间距 以及item根部局 margin 失效原因