为什么会出现错误"expression is not acceptable"?
Why does the error "expression is not acceptable" appear?
(a > b) ? c = 10 : (a < b) ? c = 20 : c = 30;
为什么此代码会产生一个名为“expression is not acceptable”的错误??
错误消息说 "c = 30" 这部分出错了。
因为三元运算符 ?:
优先于 =
,表达式被解析为:
((a > b) ? c = 10 : (a < b) ? c = 20 : c) = 30;
因为你不能"assign"到(a > b) ? c = 10 : (a < b) ? c = 20 : c
,你的编译器错误。你想要:
(a > b) ? c = 10 : (a < b) ? c = 20 : (c = 30);
不过这样写真的更好:
c = (a > b) ? 10 : (a < b) ? 20 : 30;
(a > b) ? c = 10 : (a < b) ? c = 20 : c = 30;
为什么此代码会产生一个名为“expression is not acceptable”的错误??
错误消息说 "c = 30" 这部分出错了。
因为三元运算符 ?:
优先于 =
,表达式被解析为:
((a > b) ? c = 10 : (a < b) ? c = 20 : c) = 30;
因为你不能"assign"到(a > b) ? c = 10 : (a < b) ? c = 20 : c
,你的编译器错误。你想要:
(a > b) ? c = 10 : (a < b) ? c = 20 : (c = 30);
不过这样写真的更好:
c = (a > b) ? 10 : (a < b) ? 20 : 30;