Java 使用三元语句而不是if时缺少return语句
编译器写入此构造(方法)缺少返回语句 所以不 是的Java 使用三元语句而不是if时缺少return语句,java,core,Java,Core,编译器写入此构造(方法)缺少返回语句 所以不 是的 public int lastIndexOf(final int element) { for (int i = super.size() - 1; i >= 0; i--) { return (element == this.get(i)) ? i : -1; } } 为什么??毕竟,在这两种情况下执行将如何退出循环和方法是很清楚的。在第二种情况下,循环体可能永远不会执行。第二个循环的结果与第一
public int lastIndexOf(final int element) {
for (int i = super.size() - 1; i >= 0; i--) {
return (element == this.get(i)) ? i : -1;
}
}
为什么??毕竟,在这两种情况下执行将如何退出循环和方法是很清楚的。在第二种情况下,循环体可能永远不会执行。第二个循环的结果与第一个不同,即使它运行。它将只迭代一次,并返回
-1
或size()-1
,即i
的初始值(也就是说,如果循环至少运行一次-如果i
初始值为-1,它将根本不会运行)。@tgdavies我理解,thanks@Thomas,我理解,非常感谢
public int lastIndexOf(final int element) {
for (int i = super.size() - 1; i >= 0; i--) {
return (element == this.get(i)) ? i : -1;
}
}