public int cal(int i)
{
if (i>2){
return 0;
}
return cal (++i)+i; }
public static void main(String[] argv)
{
SS cou=new SS();
int i=0;
System.out.println(cou.cal(i));
}
这个为什么运行出来是6啊????求指教
{
if (i>2){
return 0;
}
return cal (++i)+i; }
public static void main(String[] argv)
{
SS cou=new SS();
int i=0;
System.out.println(cou.cal(i));
}
这个为什么运行出来是6啊????求指教
解决方案 »
- Thing in java 第十八章第一个实例 运行有问题,请各位高手帮忙
- ((DefaultEditor)JSpinner.getEditor()).getTextField().requestFocusInWindow()有没有替代的方法设置它的光标位置
- IE在发送汉字的时候采用的编码是什么?
- 正则表达式求解·
- 电脑有拖影是怎么回事
- 大家看看这道编程题!
- [求助]为什么加了JScrollPane会不显示??
- java大神求救,急救,在线等
- win2000怎么设置classpath
- 谁会流式输入输出转为文件输入输出?谢先了,程序很短,花不了多少时间
- 关于两个double型数据求余的问题,为啥c/c++结果可以的到,二java确实两种不同的错误呢
- BufferedWriter的缓冲区大小【平衡点】
改成下面这样你能理解了么?public class Test {
static int time=1;
public int cal(int i)
{
if (i>2){
return 0;
}
i=i+1;
int ii=cal (i);
System.out.println("第"+time+++"次调用"+",ii="+ii);
return ii+i; }
public static void main(String[] argv)
{
Test cou=new Test();
int i=0;
System.out.println(cou.cal(i));
}
}
结果:
第1次调用,ii=0
第2次调用,ii=3
第3次调用,ii=5
6第1调用其实是递归里面的最后一次调用。。
第二次: 0+2
第三次: 0+3
return 0+0+0+1+2+3