有没有办法做到这一点
bool retA = true, retB=false retC=true,retD=false;
return ( (if RetA -> A) + (if RetB -> B) + (if RetC -> C) + (if RetD -> A) )
Run Code Online (Sandbox Code Playgroud)
基本上如果{A,B,C,D] = {1,2,3,4},返回值是1 + 0 + 3 + 0 = 4.您可以使用16个不同的if/else语句执行此操作,但代码不漂亮
我想你正在寻找条件运算符,如下所示:
testExpression ? trueExpression : falseExpression.
所以:
return (retA ? A : 0) + (retB ? B : 0) + (retC ? C : 0) + (retD ? D : 0);
Run Code Online (Sandbox Code Playgroud)
语法上从B派生的所有语言都有条件运算符(C,C++,Java,JavaScript和其他几种).
旁注:你A在RetD条件之后使用,但我认为你的意思D.而且,不需要外部的一对(),所以我把它们关掉了.
有时你会听到所谓的条件运算符"三元运算符",这是好的,但不是很正确:这是一个三元操作符(即,接受三个操作数的运算符)就像*是一个二元运算符(一个操作符接受两个操作数).据我所知,条件是C++唯一的三元运算符,但理论上有一天会有更多...