嗨我有像
这样的问题bool isCompleted = true;
if(isCompleted){x= 5}
所以我想使用三元运算符使用上面的代码而不使用返回或赋值
isCompleted ? int x = 5 : <do nothing>;
那么可以在不使用返回或赋值的情况下使用三元运算符吗?
感谢。
答案 0 :(得分:2)
您需要在布尔值之前进行赋值。
x = isCompleted ? 5: 0;
其次,您有类型错误。如果isCompleted = true,则上面将设置x = 5,否则将设置x = 0
isComplete ? 5 :false
将无法编译,因为您无法为int分配布尔值。
答案 1 :(得分:1)
答案 2 :(得分:1)
尝试使用它:
x = isCompleted ? intValue(if true) : intValue(if false);
由于您已将x
声明为int
,因此无论评估的条件如何,您都必须提供int
中的值。您使用的任何其他类型值都不适用于此处。因此,你写的false
是错误的。您可能希望在那里提供int
值。
如果你想根据bool条件执行一些代码逻辑,你可能想在这里使用if...else
,因为这样做不仅可以为变量分配一些值。
希望这有帮助。
答案 3 :(得分:0)
如果为true,则要将x设置为5。否则保持x值?
x = isCompleted? 5:x: