java程序关于类似递归的一些问题
public class TextRecursion{
int n=0;
public int calculate(int x){
System.out.println(n);
while(true){
x=x*x;
n++;
if(n<2){
System.out.println("x="+x);
calculate(x);
System.out.println("what");
}
else{
System.out.println("break");
break;}
System.out.println("really break");
}
System.out.println("hshs");
return x;
}
public static void main(String [] args){
TextRecursion r=new TextRecursion();
int x=2;
int result=r.calculate(x);
System.out.println("result="+result);
}
}
为什么将if的判断条件n<2改成n<1时结果会是4,但是改成n<3,4,5,6,7.......这个程序的输出结果都和n<2时一样都是16?而且通过调试会发现当第一次break之后是会运行到return 语句的,但是结果并不return出来,反而是进入 System.out.println("what")语句;为什么???
int n=0;
public int calculate(int x){
System.out.println(n);
while(true){
x=x*x;
n++;
if(n<2){
System.out.println("x="+x);
calculate(x);
System.out.println("what");
}
else{
System.out.println("break");
break;}
System.out.println("really break");
}
System.out.println("hshs");
return x;
}
public static void main(String [] args){
TextRecursion r=new TextRecursion();
int x=2;
int result=r.calculate(x);
System.out.println("result="+result);
}
}
为什么将if的判断条件n<2改成n<1时结果会是4,但是改成n<3,4,5,6,7.......这个程序的输出结果都和n<2时一样都是16?而且通过调试会发现当第一次break之后是会运行到return 语句的,但是结果并不return出来,反而是进入 System.out.println("what")语句;为什么???
...全文
相关推荐
java递归的排序和查找
java递归的排序和查找 不错的 大家可以来下载
用java实现的经典递归算法
用java实现的经典递归算法.doc
Java 零基础方法递归.md
内容概要: 该文档介绍了Java中零基础方法递归的概念和用法。通过一个示例代码演示了方法递归的定义和调用过程,以及如何使用递归解决问题。文档还包含了详细的源码和输出结果,帮助读者更好地理解方法递归的工作原理。 能学到什么: 学习方法递归的基本概念和原理。 了解方法递归在解决重复性任务时的实际应用。 掌握如何编写递归函数和调用自身的方法。 理解递归终止条件的重要性。 学习通过递归计算阶乘等常见问题。 阅读建议: 阅读前建议已具备基本的Java语法知识和编程经验。 请按顺序阅读文档中的内容,从概念讲解到示例代码,确保理解每一部分的内容。 建议在阅读示例代码时,结合自己的实际需求进行思考和实践。 如有疑问,可以参考Java官方文档或搜索相关资料,加深对方法递归的理解。 鼓励通过调试代码、追踪执行过程等方式,加深对方法递归的理解和掌握。 推荐进一步扩展学习,探索更多复杂的递归应用场景和算法问题。
回溯算法-N后问题和符号三角形java算法源程序
回溯算法-N后问题和符号三角形java算法源程序
猴子吃桃问题(java递归实现).docx
猴子吃桃问题递归


