首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三元运算符/用三元运算符替换if/else

三元运算符/用三元运算符替换if/else
EN

Stack Overflow用户
提问于 2015-06-23 19:38:49
回答 4查看 1.2K关注 0票数 0

我试图用三元运算符替换if else语句。

如果伏特加的价格为24美元,折扣价格为18 (24 *.75)

如果其他循环工作良好,并给出了所需的结果,但是当我试图将其转换为三元时,就会得到xcode中的“预期”:“错误”。我在这里做错什么了?

三元算子是这样工作的(条件)?(executeFirst):(executeSecond)

以下是我所拥有的:

代码语言:javascript
复制
NSUInteger cost = 24;
if (cost == 24) {
    return cost *= .75);
} else {
    return nil;
}    
代码语言:javascript
复制
NSUInteger cost = 24;
(cost = 24) ? return cost *= .75 : return nil;

return cost;

}

EN

回答 4

Stack Overflow用户

发布于 2015-06-23 19:42:30

三元运算符用于为某个变量赋值。

使用

代码语言:javascript
复制
cost = (cost == 24) ? cost * 0.75 : cost;

或者:

代码语言:javascript
复制
return (cost == 24) ? cost*0.75 : cost;

注意'==‘和'=’之间的区别。您一定是在代码中输入了错误或忘记了。“==”符号检查左值和右值是否相等,并将右值赋值给左侧(变量)。

票数 2
EN

Stack Overflow用户

发布于 2015-06-23 19:43:25

应该将三元运算符值赋值给某个变量,然后返回它。

代码语言:javascript
复制
NSUInteger cost = 24;
cost = (cost == 24) ? cost * .75 : nil;
return cost;

代码语言:javascript
复制
NSUInteger cost = 24;
return (cost == 24) ? cost * .75 : nil;
票数 0
EN

Stack Overflow用户

发布于 2015-06-23 19:44:17

你想要的是:

代码语言:javascript
复制
NSUInteger cost = 24;
return (cost == 24) ? cost *= .75 : return nil;

2件事:

  1. 三元运算符(条件)的第一部分应该是布尔值,您以前有一个赋值(===)。
  2. 返回三元操作符的结果。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31011979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档