java中的递归
来源:互联网 发布:网站推广优化平台 编辑:程序博客网 时间:2024/05/17 15:40
喜欢用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中的递归
- java中的递归
- java中的递归调用
- 备忘:java中的递归
- java中的递归
- JAVA 中的递归
- Java中的递归问题
- Java 中的递归
- java中的递归
- Java 中的递归
- java中的递归
- Java中的递归
- Java中的递归
- Java中的递归
- Java中的递归
- java中的递归调用
- java中的递归
- Java中的递归算法
- dom解析xml文档过程总结
- 心得笔记——JavaScript DOM
- CMM/CMMI的发展及应用
- null
- Can't allocate space for object 'syslogs' in database 'ge' because 'logsegment' segment is full/has no free extents. If you ran
- java中的递归
- 十二星座本周运势(2007.9.15-2007.9.21)
- 数据驱动在QTP中的运用(三) - 使用ADODB导入EXCEL数据文件
- 数据库设计经验谈(转)
- Office 2007创建目录和索引
- asio学习1: TCP客户端:对准时间 解析
- 广电总局责令5家广播电台涉性节目停播
- 启用应用程序级跟踪的步骤是?
- 深圳首部中小学性教育读本遭家长投诉