我的false陈述式无法正常运作。我有一个称为“ prosegui”的递归方法,它适用于我想使用的大多数单词,但是对于其中的一些单词,return false不会按原样返回值“ false”,而是继续并最终返回真正。

if (contChar < this.parola.length() - 1) {
    if (this.parola.charAt(contChar+1)==matrice[i][j])
    {
        prosegui(proseguiI,proseguiJ,i,j,contChar+1);
    }
    else
    {
        System.out.println("FALSE");
        return false;
    }
}

System.out.println("TRUE");
return true;


我真的不知道如何解决。

编辑:

程序同时打印“ FALSE”和“ TRUE”

编辑:

public boolean prosegui(int i, int j, int proseguiI, int proseguiJ, int contChar)
{
    if (contChar < this.parola.length() - 1)
    {
        int direzioneI=proseguiI-i;
        int direzioneJ=proseguiJ-j;
        i=proseguiI+direzioneI;
        j=proseguiJ+direzioneJ;

        int cont;
        StringTokenizer st = new StringTokenizer(this.results);

        cont=0;

        char[][] matrice = new char[this.lung][this.lung];

        while (st.hasMoreTokens())
        {
             matrice[cont]=st.nextElement().toString().toCharArray();
             cont++;
        }

        if(this.parola.charAt(contChar+1)==matrice[i][j]){

        prosegui(proseguiI,proseguiJ,i,j,contChar+1);
    }
    else
    {
        System.out.println("FALSE");
        return false;
    }
}

System.out.println("TRUE");
return true;
}

最佳答案

如果此代码在prosegui方法中,则在此处调用自身时:

prosegui(proseguiI,proseguiJ,i,j,contChar+1);


永远不会使用此调用返回的true / false。

10-02 03:21
查看更多