黑马程序员技术交流社区
标题:
递归中的if和while问题总结(附流程图)+延伸问题...
[打印本页]
作者:
newlaw2013
时间:
2012-4-1 08:31
标题:
递归中的if和while问题总结(附流程图)+延伸问题...
本帖最后由 newlaw2013 于 2012-4-1 08:34 编辑
/*
用递归的方法做一个整数的二进制转换。
注意,if和while的区别就是:
if只判断条件一次,不管代码执行与否,不会"再回首判断"。
while则是多次"回首",直到条件不满足。
*/
class DiGuiDemo
{
public static void main(String[] args)
{
toBin(6);
}
public static void toBin(int num){
if(num>0)//这里的if如果换做while,程序会无限循环打印:1。
{toBin(num/2);
System.out.println(num%2);
}
}
}
toBin(if&while).JPG
(99.64 KB, 下载次数: 229)
下载附件
toBin(if&while)流程图
2012-4-1 08:33 上传
-----------------------------------------------------------------------------------------------------------------------------------------------
延伸问题:我想获取系统执行toBin()方法的时间,增加代码后程序如下:
class DiGuiDemo
{
public static void main(String[] args)
{
long beginTime = System.currentTimeMillis();
toBin(6);
long endTime = System.currentTimeMillis();
System.out.println("Time cost:"+(endTime-beginTime)+"ms");
}
public static void toBin(int num){
if(num>0)//这里的if如果换做while,程序会无限循环打印:1。
{toBin(num/2);
System.out.println(num%2);
}
}
}
结果执行都是Time cost:0 ms
为什么是0呢?是方法运算量太少CPU已快到这个时间可以忽略了吗?貌似加大num的值也是一样的结果。
如果可以请诸位学友帮忙支招:如何获取一个方法的运行时间?
作者:
黄秋
时间:
2012-4-3 03:29
确实运算量太少,加一句:Thread.sleep(10);
或加一个数量大的循环。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2