是我的代碼的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