java - 调用递归方法的无法访问的语句

标签 java recursion

<分区>

编写这段代码时,每当我尝试在递归方法中达到 a[x] 时,我都会在尝试编译时遇到“无法访问的语句”错误。

public class recursion
{
public static boolean match (int [] a, int [] pattern)
{
    if(pattern.length==0)
        return true;
    boolean x;
    x=match(a,pattern,0,0);
    if(x==true)
        return true;
    return false;

}

public static boolean match (int [] a, int [] pattern,int aCounter,int ptCounter)
    {
        int count=0;
        int x=aCounter;
        if(x==a.length);
        {
            if(count==pattern.length)
                return true;
            else return false;
        }

        if(a[x]>100)
        {
            count=0;
        return match(a,pattern,aCounter+1,0);
    }
    else if(((pattern[ptCounter]==1)||(pattern[ptCounter]==0))&&((a[x]>-10)&&(a[x]<10)))
    {
        count++;
        return match(a,pattern,aCounter+1,ptCounter+1);
    }
    else if(((pattern[ptCounter]==2)||(pattern[ptCounter]==0))&&(((a[x]<-10)&&(a[x]>-100))||((a[x]>9)&&(a[x]<100))))
    {   
        count++;
        return match(a,pattern,aCounter+1,ptCounter+1);
    }

}

}

希望就此问题以及递归方法的调用提供意见。谢谢!

最佳答案

你的问题是一个不必要的 ; :

    if(x==a.length); // here
    {
        if(count==pattern.length)
            return true;
        else return false;
    }

这个 ; 关闭了 if 语句,所以下面的 bock 总是被执行(并返回 truefalse),后面的代码该 block 变得无法访问。

关于java - 调用递归方法的无法访问的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34855115/

相关文章:

python - 递归 Python 函数削弱 Django 站点性能

java - 检查数组是否包含 Java 值的最有效方法?

java 检测对象中没有其他线程

java - 通用扩展和实现

html - 使用 HTML 的 XSLT 1.0 字数统计

python - 多少种可能的数字组合构成相同的二叉树

java - Java 项目的 LessCSS/JS 编译器和压缩器

java - 为什么我的所有组件都聚集在 JFrame 的中心

python - 汉诺塔递归调用

java - 在 2D 字符数组中搜索出现的次数