enh*_*ack 2 java conditional if-statement ternary-operator
我一直在努力转向
private PlaneClass preferredClass;
if (preferredClass == PlaneClass.FIRST_CLASS)
preferredClass = PlaneClass.ECONOMY_CLASS;
else
preferredClass = PlaneClass.FIRST_CLASS;
Run Code Online (Sandbox Code Playgroud)
成
preferredClass == PlaneClass.FIRST_CLASS ?
preferredClass = PlaneClass.ECONOMY_CLASS
: preferredClass = PlaneClass.FIRST_CLASS;
Run Code Online (Sandbox Code Playgroud)
if语句编译.条件运算符没有.(错误消息:1.类型不匹配:无法从PlaneClass转换为布尔2.令牌上的语法错误"=".还有另外两个错误......).我哪里做错了?
khe*_*ood 10
语法是:
condition ? value1 : value2;
Run Code Online (Sandbox Code Playgroud)
不
condition ? statement1 : statement2;
Run Code Online (Sandbox Code Playgroud)
条件运算符是表达式,而不是语句.它不像语句那样执行语句if:它返回一个值.
你的意思是:
preferredClass = (preferredClass == PlaneClass.FIRST_CLASS ?
PlaneClass.ECONOMY_CLASS : PlaneClass.FIRST_CLASS);
Run Code Online (Sandbox Code Playgroud)