本帖最后由 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()方法的时间,增加代码后程序如下:
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的值也是一样的结果。
如果可以请诸位学友帮忙支招:如何获取一个方法的运行时间? |