[英]Ternary Operator / Replacing if/else with ternary operator
我試圖用三元運算符替換if else語句
如果伏特加的成本$ 24以折扣價18返回(24 * .75)
這個if else循環工作正常,並給了我想要的結果,但是當我嘗試將其轉換為三進制時,在xcode中出現“ expected':'”錯誤。 我在這里做錯了什么?
三元運算符的工作原理是這樣的(條件)? (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;
}
三元運算符用於為某個變量分配值。
采用
cost = (cost == 24) ? cost * 0.75 : cost;
要么:
return (cost == 24) ? cost*0.75 : cost;
注意“ ==”和“ =”之間的區別。 您必須在輸入中打錯了輸入或忘記了輸入。 '=='符號檢查左值和右值是否相等,'='將右值分配給左側(變量)。
您應將三元運算符值分配給某個變量,否則將其返回。
NSUInteger cost = 24;
cost = (cost == 24) ? cost * .75 : nil;
return cost;
要么
NSUInteger cost = 24;
return (cost == 24) ? cost * .75 : nil;
您想要的是這樣的:
NSUInteger cost = 24;
return (cost == 24) ? cost *= .75 : return nil;
2件事:
三元運算符的第一部分(條件)應為布爾值,您之前有一個賦值( ==
vs. =
)
返回三元運算符的結果。
三元運算符必須求值(將其視為必須返回值的迷你函數)。 對於三元condition ? one : two
condition ? one : two
,你不能在one
和two
處有陳述(例如x = 3
); 它們必須是表達式。 所以在你的情況下
return (cost == 24 ? 0.75 * cost : nil);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.