public class HiwayTest9 {
int sum = 0;
public int test(){
for(int i=0;i<5&&sum<2;i++){
sum += i;
test();
}

return sum;
}
public static void main(String...args){
System.out.println(new HiwayTest9().test());
}
}請大家幫忙解釋下原因~~~多謝

解决方案 »

  1.   

    暈死,打印一下終於知道哪里錯了
    原來是在i=0 這里 sum=0,這樣下去永遠是0...再問下:遞歸中的return語句是返回到上一層的遞歸中?   還是直接退出程序??
      

  2.   

    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();
            }
            
            return sum;
        }
        public static void main(String...args){
            System.out.println(new test().test1());
        }
    }
    这样还不行呢!楼主……
      

  3.   

    你这程序中一直在调用test()方法,sum永远为0,当然是无限循环了
    return sum;是返回上一层的递归中
      

  4.   


    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());
        }
    }你看这样行不行
      

  5.   

    为什么LZ在test1方法中又调用了test1方法,lz想使用递归吗,lz想实现什么东东
      

  6.   

    我觉得循环未结束,不会return的。是死循环。