java中的递归

原创 2007年09月15日 11:14:00
      喜欢用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){
     int i=math.random(num);   
    boolean ret=...//从数据库中检索确认有无i的重复
    if (ret) {
      randomNum(num);
     }
    }
,呵呵,不写了,自己都觉得太简单了!
 

相关文章推荐

java培训知识-递归

  • 2013年08月28日 19:00
  • 43KB
  • 下载

《编程导论(Java) ·10.3》补充:递归的优化

递归强大、优雅、易实现...问题是效率和栈溢出(java.lang.StackOverflowError)。 为什么Scheme不需要迭代结构如while、for呢? 在Java编译器不直接支持尾调用...
  • yqj2065
  • yqj2065
  • 2016年06月21日 12:11
  • 756

tree easyui java 树递归

  • 2015年04月09日 19:01
  • 13.65MB
  • 下载

java线程中的递归

  • 2015年04月12日 21:47
  • 209KB
  • 下载

Java实现通过递归遍历树形结构

树形结构在数据库的设计过程中是一种比较常见的模型,指的是各元素之间存在‘一对多’的结构模型。在树形结构中,树根结点没有前驱结点,其余每个结点有且只有一个前驱结点。叶子结点没有后续结点,其余每个结点的后...

java递归教程 好东东现在免费送了

  • 2008年01月18日 13:09
  • 2.23MB
  • 下载

递归的高级应用java代码

  • 2012年04月16日 15:39
  • 721B
  • 下载

Java递归遍历json对象,支持无线层级

import java.util.Iterator; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * *...

java代码统计_递归

  • 2013年03月11日 23:16
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中的递归
举报原因:
原因补充:

(最多只允许输入30个字)