public class AAA {
public static void main(String [] args) {
m(3);
System.out.println(m(3));
System.out.println(f(5));
}
public static long m(int n) {
if(n==1)
return 2;
else
return 
2+10*m(n-1);
}

public static long f(long index) {
if (index == 1)
return 8;
else {
long a1 = 8;
long a2= 1;
long sum = 0;
long a0 = 8;
for (int x=1;x<=index; x++) {
a2 = 10*a1+a0;
a1 = a2;
sum += a2;
return sum;
}
}
}
}; 这是我写的一段代码;编译的报借是AAA.java:30: missing return statement;请求各位高手相助啊

解决方案 »

  1.   

    语法问题,Indent一下,找找都能找出来。
      

  2.   

    public   static   long   f(long   index)   {
    if   (index   ==   1)
    return   8;
    else   {
    long   a1   =   8;
    long   a2=   1;
    long   sum   =   0;
    long   a0   =   8;
    for   (int   x=1;x <=index;   x++)   {
    a2   =   10*a1+a0;
    a1   =   a2;
    sum   +=   a2;
    }
    return   sum;
    }
    }
    };
    因为for里面的return不一定能够执行得到。
      

  3.   

    如果给f()的的值小于1的话就进不了for循环,也不会在if中执行到。然后,一个方法只能有一个返回值。
      

  4.   

    对于方法,所有的分支都应该在逻辑上有返回值,除非这个方法是void型。over
      

  5.   

    你缩进下就知道了,建议你不要偷懒,其实缩进编程不尽好看,也方便你自己
    在ELSE里面如果不满足FOR循环的条件的话,就不会RETURN了,那么这个分支就没有RETURN,错误在这