return statement in ternary operator c++

前端 未结 5 1444
不知归路
不知归路 2020-12-02 23:01

I wrote the absolute function using ternary operator as follows

int abs(int a) {
 a >=0 ? return a : return -a;
}

I get the following er

5条回答
  •  攒了一身酷
    2020-12-02 23:20

    ?: is an operator that takes three expressions and evaluates them in some way to produce a result. return a is not an expression (it's a statement), so your first form doesn't work. It's the same as you can't put return in the arguments of other operators: return a + return b will also not work.

    If you want the returns in the separate branches, use if instead:

    if (a >=0)
       return a;
    else
       return -a;
    

提交回复
热议问题