为什么三元运算符不能在我的代码中工作?

Ano*_*mus 2 c++ if-statement return ternary-operator language-lawyer

我有以下代码

mystack.empty() ? return 1 : return 0;
Run Code Online (Sandbox Code Playgroud)

从语法的角度来看看起来很完美,但每当我尝试运行它时都会抛出一个错误说

[错误]预期':'在'返回'之前

[错误]在'return'之前预期的primary-expression

三元运算符不能与return语句一起使用,或者代码有问题吗?我想代码是自我解释的.

谢谢.

son*_*yao 7

语法无效.三元条件运算符要求其操作数是表达式,但return 1return 0没有.

另一方面,return语句可以与(可选)表达式一起使用,例如三元条件运算符:

attr(可选)返回表达式(可选); (1)

所以你可以/应该把它写成

return mystack.empty() ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

  • 或者你可以简单地使用`return mystack.empty();` (2认同)