`

java中的递归

 
阅读更多
喜欢用dephi写一些程序,总是感觉delphi的vcl特别的好用,接触java来对面向对象有了个全新的认识,确实好,对象的概念让变成变得实体化,思考的空间更大,因为一切都是对象,在oop的编程中也有类似对象的概念,那就是结构体/共同体,在delphi中就是记录record,但是对record的操作就不是很方便了,这样就要引入指针的概念,而java正式取缔了指针,一切都是对象,一个引用就是对对象的单体的地址指向,在团队大峡、stef等的帮助下概念越来越强,也感谢大家!
设计很多程序的时候都会有个递归算法,就是当程序运行没有达到某种条件的时候就必须重新执行一遍,这个问题对于那些高人来说确实是非常简单的,但是写面向过程习惯了的人可能开始使用java的时候还不是十分的得心应手,原因很简单,因为c++和delphi中都有个goto,确实,goto不是好东西,一旦用的不好会带来灾难性的程序错误,所以java这些面向对象的高级语言中已经给他封杀了,这样对于开始接触java的人就会一时不好适应了!下面就我遇到的几个例子加以说明:
1、十进制转换成二进制
delphi:
function DecimalToBinaryz(integer i): string;
var result:string;
label:again;//goto的标签
begin
result:='';
again:
if((i /2)=0) then
begin
result:=result+'1';
return result;
end;
else
begin
i:=i/2;
result:=result+'1';
goto again;
end;
end;
这样使用goto就非常轻松的实现递归调用了,java中没有了goto,这就要自己想办法,其实更简单:
public static void DecimalToBinary(int num){
if(num == 0){ //当num=0时,循环结束
return;
}else{
DecimalToBinary(num/2); //调用递归方法
System.out.print (num%2);
}
}
2、随机数不重复:
delphi中
var num:integer;
label:again;
begin
again:
num:=random(9999);//随机出来一个0-9999内的数字
adoconn.str:=....
..
...//从数据库中查询是否存在相同的num
if recordcount<>0 then
goto again else
return num;
end;
这个程序在考试出题中不许同一张试卷不许出现同样的题中就十分管用了,在java中:
public static void randomNum(int num){
inti=math.random(num);
boolean ret=...//从数据库中检索确认有无i的重复
if (ret) {
randomNum(num);
}
}
,呵呵,不写了,自己都觉得太简单了!
分享到:
评论

相关推荐

    java中递归用法详解

    java中递归的用法比较单一,但是用途比较重要,在开发中经常用到,熟练掌握递归的用法有利于程序代码的快速合理编写

    Java中递归逻辑循环调用解压zip里面所有的压缩包

    Java中递归逻辑循环调用解压zip里面所有的压缩包 Java中递归逻辑循环调用解压zip里面所有的压缩包

    Java SE程序 递归 Java SE程序 递归

    Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE...

    java递归实现删除文件夹

    在Java编程中,删除文件夹及其子文件夹通常涉及到递归操作,因为文件夹可能包含多个层级的子文件和子文件夹。递归是一种在函数内部调用自身的方法,用于解决具有相同结构的问题。以下是对Java中递归实现删除文件夹这...

    [Java算法设计]-递归阶乘.java

    该资源提供了Java中递归阶乘的全面指南。文档中涵盖了递归阶乘的基本概念,包括如何使用递归计算阶乘以及如何在Java中实现递归阶乘。此外,文档还包括一个逐步指南,介绍如何在Java中实现递归阶乘的代码,包括详细的...

    Java中递归、循环的优劣分析

    在编程语言中,Java提供了两种基本的控制流程结构——递归和循环,它们在解决问题时各有优劣。本文主要分析了Java中递归和循环的特点,并通过实例代码展示了它们的执行效率。 首先,我们来看看递归。递归是一种函数...

    关于java递归文件,以及检索特定文件

    在给定的标题“关于java递归文件,以及检索特定文件”中,我们可以推测这篇博文可能探讨了如何使用Java递归算法遍历文件系统,寻找特定类型的文件。下面将详细解释这个主题。 首先,让我们理解递归的概念。递归是一...

    用Java集合递归实现通用树Tree

    在Java编程中,树是一种非常重要的数据结构,它在很多领域都有着广泛的应用,例如文件系统、数据库索引、编译器语法分析等。本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将...

    java 用递归实现字符串反转

    在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础概念 递归是指在函数或方法的定义...

    java递归无限层级树

    通过学习和理解这些代码,你可以深入理解如何使用Java递归处理无限层级的树结构,这对于开发涉及树形数据的系统非常有用。 总之,使用Java递归实现无限层级树的关键在于定义好树节点类,明确生成新节点的条件,以及...

    Java中递归原理实例分析

    Java中的递归是一种强大的编程技巧,它涉及到一个函数或方法在执行过程中调用自身来解决问题。递归在解决复杂问题时特别有用,因为它能够将大问题分解为一系列更小的相似子问题。以下是对Java中递归原理的详细分析:...

    java递归树型结构通用数据库

    在Java递归树型结构通用数据库中,使用递归树型结构来存储部门信息,部门之间存在父子关系,每个部门都有一个唯一的ID,父部门的ID作为子部门的Parent ID,通过这种方式实现树型结构的部门管理。 2. 部门管理接口...

    ava中的递归的资源

    在Java编程语言中,递归是一种强大的编程技术,它指的是函数或方法调用自身的过程。递归可以帮助我们解决复杂的问题,通过将大问题分解为更小的子问题来简化问题解决。本文将深入探讨Java中递归的概念、工作原理、优...

    java实现递归调用

    在Java中,递归常用于解决需要重复执行相同任务但每次处理的数据不同的问题,例如遍历树形结构、计算阶乘、求解斐波那契数列等。本篇文章将详细介绍如何使用Java实现递归调用来遍历一棵树,并结合SQL代码进行说明。 ...

    java 中的经典递归

    ### Java中的经典递归 #### 一、递归的基本概念 递归是一种常见的算法思想,在计算机科学中占有重要地位。简单来说,递归是指在函数的定义或执行过程中调用自身的方法。递归通常用于解决那些可以分解为相似子问题...

    Java数组排序总结(冒泡_选择_插入_希尔)__递归算法的复杂度

    在编程领域,数组排序是基础且重要的操作,尤其是在Java中。本篇文章将深入探讨四种基本的排序算法:冒泡排序、选择排序、插入排序以及希尔排序,并结合递归算法的复杂度进行分析。这些排序算法在不同的场景下有不同...

    java程序的递归算法

    ### Java程序中的递归算法:列出目录下的所有子目录和文件 #### 一、递归算法简介 递归是计算机科学中的一个重要概念,它是指在解决问题的过程中直接或间接地调用自身的一种方法。递归算法通常用于解决可以分解为...

    java 递归问题文档

    在Java中,递归尤其重要,因为它可以帮助我们解决许多复杂的问题,如树遍历、图遍历、分治策略等。这篇“java 递归问题文档”很可能是对递归的深入讲解和实例分析,旨在帮助初学者理解和掌握这一关键技能。 首先,...

    Java递归算法构造JSON树形结构

    Java 递归算法构造 JSON 树形结构是指通过 Java 语言使用递归算法将数据库中的菜单表构建成树形的 JSON 格式发送给第三方。这种方法可以将复杂的树形结构数据转换成易于理解和处理的 JSON 格式。 在 Java 中,使用...

    java线程中的递归

    java线程中的递归

Global site tag (gtag.js) - Google Analytics