Java: if, else and return
我正在编写一个方法,其中包含if-else语句,还包含一个返回关键字。现在,我正在写这样的东西:
1 2 3 4 5 6 7 8 9 10 |
我是Java新手,这是我第一次尝试学习编程语言。我读到,如果if条件为假,"else"语句总是会被删节。
现在,如果这些是错误的:
1 2 3 4 5 | if(name == null || name.trim().isEmpty()) throw new Exception("The key is empty"); else if(exists(name)){ hTable.remove(name); } |
其他部分不应该总是很可爱吗?
1 |
我注意到了这一点,因为这个方法返回的是真/假,而且它似乎忽略了其他部分,即使上面的条件是假的。
我将尝试在您的代码片段中添加注释,以帮助您理解流程:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public boolean deleteAnimal(String name) throws Exception{ if(name == null || name.trim().isEmpty()) throw new Exception("The key is empty"); //Executes if 'name' is null or empty else if(exists(name)){ hTable.remove(name); // Excecutes if 'name' is not null and not empty and the exists() returns true } else throw new Exception("Animal doesn't exist"); //Excecutes if 'name' is not null and not empty and the exists() returns false return hTable.get(name) == null; //The only instance when this is possible is when the 'else if' part was executed } |
希望这些评论能帮助你理解这个流程!
考虑到这一点,你的问题的答案是"是"。
如果不知道其余代码
if exits返回true,else if语句的计算结果为true。将执行htable.remove(name)行。不会调用else分支,因为
我认为它将返回真,因为htable将返回空值。