我正在尝试用三元运算符替换if else语句
如果伏特加24美元的成本以折扣价18(24 * .75)返回
这个if else循环工作正常并给我想要的结果但是当我 尝试将其转换为三元我在xcode中得到“预期':'”错误。我是什么 在这里做错了吗?
三元运算符就像这样工作 (条件)? (executeFirst):( executeSecond)
这就是我所拥有的:
NSUInteger cost = 24;
if (cost == 24) {
return cost *= .75);
} else {
return nil;
}
NSUInteger cost = 24;
(cost = 24) ? return cost *= .75 : return nil;
return cost;
}
答案 0 :(得分:2)
三元运算符用于为某个变量赋值。
使用
cost = (cost == 24) ? cost * 0.75 : cost;
或:
return (cost == 24) ? cost*0.75 : cost;
注意'=='和'='之间的区别。您必须在代码中输入错字或忘记它。 '=='符号检查左右值是否相等,'='将正确的值赋给左侧(变量)。
答案 1 :(得分:0)
您应该将三元运算符值分配给某个变量,然后将其返回。
NSUInteger cost = 24;
cost = (cost == 24) ? cost * .75 : nil;
return cost;
或者
NSUInteger cost = 24;
return (cost == 24) ? cost * .75 : nil;
答案 2 :(得分:0)
你想要的是:
NSUInteger cost = 24;
return (cost == 24) ? cost *= .75 : return nil;
2件事:
三元运算符的第一部分(条件)应该是布尔值,您之前有一个分配(==
与=
)
返回三元运算符的结果。
答案 3 :(得分:0)
三元运算符必须评估某些东西(将其视为具有返回值的迷你函数)。对于三元condition ? one : two
,您无法在x = 3
和one
处发表声明(例如two
);他们必须是表达。所以在你的情况下它将是
return (cost == 24 ? 0.75 * cost : nil);