Jest składniowo poprawne Java. Ale ja nie rozumiem, jak to może być ewentualnie robi to, co zamierzają.
Wydaje się, że parametr „Element” jest rzeczą szukasz i „pierwsze” pole w bieżącej klasy jest korzeniem drzewa binarnego.
Nie wiadomo, czy klucz do binarnego drzewa i wyszukiwania (w klasie element) jest „atutem” lub „dane”. Do „mniej niż” test wykorzystuje „aktywa”, natomiast „większą niż” „danych” test zastosowań. Wydaje się prawdopodobne, że obie linie powinny korzystać z tego samego pola. Może być tak, że jeden z tych dwóch pól ( „aktywa” lub „dane”) powinno nie być uwzględniona w tej metodzie w ogóle. Może ostatnia linia metody powinny być po prostu „return true;”?
(Podejrzewam, że „stan zatrzymania” i „kod nie jest symetryczny” odpowiedzi powyżej są zarówno błędna Ale mogę się mylić. Trudno powiedzieć tylko z kodem danej).
Zgadzam się, że nieskończonej pętli jest prawdopodobne: Podejrzewam, że trzeba utworzyć drugą funkcję „szukaj”, która przyjmuje dwa parametry „element” - jedna jest rzeczą, aby szukać (jak bieżącego parametru „elementu”) i drugim jest kolejnym elementem, aby szukać - odpowiednik obecnego zmiennej lokalnej „c”. Chciałbym zrobić „Extract Method” refaktoryzacji na wszystko w organizmie bieżącego „Szukaj” metody za wyjątkiem pierwszej linii, a następnie zmienić dwa rekurencyjnych wywołań korzystać z nowej metody.
(Niektóre to spekulacyjny, na podstawie mi zgadywać, co chcesz lub zamierzają, biorąc pod uwagę ograniczone informacje. Więc mógłby być oczywiście bardzo źle).