package com.accp.servers;public class test { int sum = 0; int i=0; public int test1(){ for(;i<5;i++){ System.out.println("i:"+i); sum += i; System.out.println("sum:"+sum); test1(); }
public class HiwayTest9 { int sum = 0; int i = 0; public int test(){ if(i<5&&sum<2){ System.out.println(sum); sum+=i++; test(); } return sum; } public static void main(String...args){ System.out.println(new HiwayTest9().test()); } }你看这样行不行
原來是在i=0 這里 sum=0,這樣下去永遠是0...再問下:遞歸中的return語句是返回到上一層的遞歸中? 還是直接退出程序??
int sum = 0;
int i=0;
public int test1(){
for(;i<5;i++){
System.out.println("i:"+i);
sum += i;
System.out.println("sum:"+sum);
test1();
}
return sum;
}
public static void main(String...args){
System.out.println(new test().test1());
}
}
这样还不行呢!楼主……
return sum;是返回上一层的递归中
public class HiwayTest9 {
int sum = 0;
int i = 0;
public int test(){
if(i<5&&sum<2){
System.out.println(sum);
sum+=i++;
test();
}
return sum;
}
public static void main(String...args){
System.out.println(new HiwayTest9().test());
}
}你看这样行不行