为什么我在Java中遇到stackoverflow?

时间:2013-04-05 03:46:04

标签: java recursion stack-overflow

我有一个int," count"在每次递归后添加一个,但我也有一个if语句,一旦int等于或大于另一个整数就停止递归。不知何故if语句被忽略。

public static boolean wildcard(String x, String y, int substring, int count) {
    if (count >= y.length()){
        System.out.println("asdf");
        return true;
    }

    if (x.charAt(count) == y.charAt(count)){
        System.out.println("ALSKDFJKL");
        return wildcard(x, y, substring, count++);
    }
    if (y.charAt(count) == '*'){
        return wildcard(x.substring(substring), y, substring++, count);


    System.out.println("wildcard end");
    return false;
    }

1 个答案:

答案 0 :(得分:5)

而不是return wildcard(x, y, substring, count++);尝试return wildcard(x, y, substring, ++count);

count++是一个后增量(意味着它将在方法返回后递增)

出于同样的原因,您可能还想更新return wildcard(x.substring(substring), y, substring++, count);

此外,您的上一个if声明已损坏......我认为System.outreturn false希望超出if