0
이 코드가 있습니다. 아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까?자바 return 문 우선 순위
이 코드가 있습니다. 아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까?자바 return 문 우선 순위
return
재귀 호출의 결과가 필요하면 else
두 가지를 제거 할 수도 있습니다 (이후 return
). 그리고 concieration보다 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()); *와 *'buscar (nodo, raiz.getDer());); ** 및 **'return buscar (nodo, raiz.getDer()); –
당신은'Nodo '에 대한 코드를 보여주지 않았고, 기본적인 디버깅을해야하고, 코드를 단계별로 실행하여 오류가 어디에서 발생하는지 살펴야합니다. – chrylis
@ CardinalSystem 당신이 옳았어요. 모든 옵션에서 수익을 사용해야합니다. – juancsr