bobo老师,在自己实现的时候碰到了一个java语法问题
来源:7-7 基于二分搜索树的映射实现
Declee
2019-10-08
bobo老师,在我自己实现这个结构的时候,发现如果在横线处有
if的话,会报错,但是把if删掉变成else的时候就不报错了.我猜想是因为当方法有返回值的时候,条件判断要满足所有可能出现的情况,所以需要else兜底,而当没有else的时候就可能出现有些条件没有返回值的情况,所以会报错,以上是我的猜想,不知道是不是这个原因呢.
另外bobo老师,else if这个结构一定要用到嘛?我发现全都用if的话也不会报错,感觉else if 和if完全可以互相替代(这些问题都是java基础语法问题,按理来说不应该在这儿提问,但还是希望老师可以随便答一下,麻烦老师了)
写回答
1回答
-
如果是 else if,因为有 if,需要加条件:else if(什么条件)
else 的意思就是除了上面判断的条件之外的所有其他条件。
在这个例子中,确实可以不用 else if,因为一旦进了某个 if,直接 return,没有机会进入下一个 if。
但是,else if 和 if 不等价。比如:
int a = -100; if(a < 0) System.out.println("a"); else if(a < 10) System.out.println("b"); else if(a < 100) System.out.println("c");
和
int a = -100; if(a < 0) System.out.println("a"); if(a < 10) System.out.println("b"); if(a < 100) System.out.println("c");
输出不一样。
试试看?研究一下为什么不一样?:)
加油!:)
032019-10-08
相似问题