0
私はこのコードを持っています。誰がなぜこれが起こっているのか教えていただけますか?Javaのreturn文の優先順位
私はこのコードを持っています。誰がなぜこれが起こっているのか教えていただけますか?Javaのreturn文の優先順位
あなたは再帰呼び出しの結果をreturn
にする必要があります。else
の2つを削除することもできます(return
以降)。そして、私は連結よりもString.format
を好むでしょう。同様に、
private String buscar(Nodo nodo, Nodo raiz) {
System.out.println(nivel);
this.nivel++;
if (raiz != null) {
if (nodo.getValor() == raiz.getValor()) {
System.out.println("es igual");
return String.format("El número %d está en el nivel: %d",
nodo.getValor(), this.nivel);
} else if (nodo.getValor() < raiz.getValor()) {
return buscar(nodo, raiz.getIzq()); // return the recursive result
}
System.out.println("es mayor");
return buscar(nodo, raiz.getDer()); // return the recursive result
}
return String.format("El número %d no forma parte del árbol", nodo.getValor());
}
この状態から戻ってくるだけなので、それはありますか? 'nodo.getValor()== raiz.getValor()'?私はあなたが変更を意味すると思います。* 'buscar(nodo、raiz.getIzq());' * and * 'buscar(nodo、raiz.getDer());' * ); **および** 'return buscar(nodo、raiz.getDer());' **? –
あなたは 'Nodo'のコードを表示していないので、基本的なデバッグやコードの実行、どこが間違っているのかを見ていく必要があります。 – chrylis
@ CardinalSystemあなたはそうだった、私はすべてのオプションでリターンを使用する必要があります、ありがとう:) – juancsr