Java: "Missing return statement"

I've having some trouble with recursion. At the moment, this code gives me an error message "missing return statement". Any way to get this working the way I want it to? I want it to calculate for xn and then return "count" when n reaches zero.

public class Question6p2 {
    public static void main(String[] args){
        int n = -6;
        int x = 2;
        int count = x;
        power2(n, x, count);
        System.out.println(power2(n, x, count));

    }

    public static int power2(int n, int x, int count){
        if (n != 0){
            if (n>0){
                count = count * x;
                n = n - 1;
            }
            else if (n<0)  {
                count = count * -x;
                n = n + 1;
            }
            power2(n, x, count);
        }
        else if (n == 0){
            return count;
        }
    }
}

Maybe I'm coming about this all wrong. Anyone care to help?

Jon Skeet
people
quotationmark

Currently, you have this statement:

power2(n, x, count);

... which ignores the result completely. In that branch, we never return anything from the method call. I suspect these two issues are linked.

I suspect you just want:

return power2(n, x, count);

people

See more on this question at Stackoverflow