是我的代码的Java三元操作混乱
public class BinarySearch {
public static int binsearch(int key, int[] a)
{
int lo = 0;
int hi = a.length - 1;
while (lo < hi)
{
int mid = (lo + hi) >> 1;
key < a[mid] ? hi = mid : lo = (mid + 1);
}
return lo--;
}
}
编译
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error on tokens, Expression expected instead
Syntax error on token "]", delete this token
Syntax error, insert "]" to complete Expression
当我得到一个错误,如果我改变 '<' 到 '>' 作为
key > a[mid] ? hi = mid : lo = (mid + 1);
有一个总不同的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error on token ">", -> expected
我真搞不清楚在Java三元运算符的使用。 毕竟,这个代码在C++中工作正常
您可以先将您的代码分解为非三元if语句吗?我向你保证java中的三元作品,但你在这里写的不是java代码。 –
这不是特定于三元运算符。在Java中,与C不同,不能将表达式放置在需要语句的位置。 – Holger
“这段代码可以在C++中正常工作”这是因为C++对于语句表达式要轻松得多。另一方面,Java只允许将直接和复合赋值表达式用作语句。 – dasblinkenlight