我有如下一段代码
mystack.empty() ? return 1 : return 0;
从语法的角度来看,它看起来很完美,但每当我尝试运行它时,它都会抛出一个错误提示
[Error] expected ':' before 'return'
和
[Error] expected primary-expression before 'return'
三元运算符是否不能与 return 语句一起使用,还是代码有问题?我想代码是不言自明的。
谢谢。
最佳答案
语法无效。 Ternary conditional operator要求其操作数为 expressions , 但 return 1
和 return 0
不是。
另一方面,return statement可以与(可选)表达式一起使用,例如三元条件运算符:
attr(optional) return expression(optional) ; (1)
所以你可以/应该把它写成
return mystack.empty() ? 1 : 0;
关于c++ - 为什么三元运算符在我的代码中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41197668/