我在Syntax error on token "=", != expected
temp = temp.next
这是代码的其余部分
static boolean search(int xData) {
Node temp = head;
while (temp != null) {
return (temp.data == xData ) ? true : temp = temp.next;
}
return false;
}
答案 0 :(得分:2)
您正在尝试编写无法使用条件运算符完成的操作。
相反:
if (temp.data == xData) return true;
temp = temp.next;
return (temp.data == xData )? true : temp = temp.next ;
总是返回。毕竟,这是一份回报。所以,你的循环只会迭代一次。
您可以为作业添加括号:
return (temp.data == xData )? true : (temp = temp.next);
然而:
更好的方法是使用for循环:
for (Node temp = head; temp != null; temp = temp.next) {
if (temp.data == xData) return true;
}
return false;
答案 1 :(得分:1)
您无法使用三元条件运算符表达该逻辑,因为第2和第3个操作数具有不同的类型(boolean
与Node
)。
此外,当条件为真时,您似乎想要突破循环(使用return语句),否则保持循环,因此条件表达式没有任何意义。
static boolean search(int xData) {
Node temp = head ;
while(temp != null) {
if (temp.data == xData)
return true;
temp = temp.next;
}
return false ;
}