【发布时间】:2012-12-21 04:27:18
【问题描述】:
我的 return 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;
}
【问题讨论】:
-
您应该在问题中包含您的方法声明。
-
以及失败的案例
-
return false 不会返回应有的值“false” => 它肯定会。唯一可能的原因:该行没有被执行。
-
对我来说似乎很好。你确定
else分支被执行了吗? -
你试过调试了吗?