Я пытался написать код AVL-дерева на Java, и что-то пошатнуло мое понимание основ программирования. Почему Java заставляет меня возвращать значение, если у меня уже есть оператор возврата в блоке else лестницы if-else. Я попробовал отладку, и она работает так, как ожидалось, она никогда не переходит к оператору возврата за пределами блоков if-else. Я работал над Java и никогда этого не осознавал. Я даже не уверен, это было всегда или это что-то новое? Я также прочитал несколько блогов, в которых говорится, что вам не обязательно возвращать значение, если вы вернули его из блока else.
The error which I get is I skip the last return statement.
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type AVLNode
https://javahungry.blogspot.com/2019/12 ... -java.html
ознакомьтесь с последним примером по этой ссылке.
https://javahungry.blogspot.com/2019/12 ... -java.html
ознакомьтесь с последним примером по этой ссылке.
https://javahungry.blogspot.com/2019/12 ... -java.html
ознакомьтесь с последним примером по этой ссылке.
https://javahungry.blogspot.com/2019/12 ... -java.html
ознакомьтесь с последним примером по этой ссылке.
https://javahungry.blogspot.com/2019/12 ... -java.html
р>
public class AVL
{
AVLNode root;
private AVLNode insert ( AVLNode current,int val)
{
if ( current == null)
{
return new AVLNode(val, 0, null, null);
}
else if ( val < current.val)
{
current.left = insert ( current.left, val);
}
else if ( val > current.val)
{
current.right = insert ( current.right, val);
}
else
{
return current;
}
return current; // I don't want to return you ////
}
public void add ( int val)
{
this.root = insert ( this.root, val);
}
Подробнее здесь: https://stackoverflow.com/questions/631 ... he-if-else