为什么三元操作员在我的代码中不起作用

Why is the ternary operator not working in my code?

本文关键字:我的 代码 不起作用 操作员 三元 为什么      更新时间:2023-10-16

我有以下代码

mystack.empty() ? return 1 : return 0;

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

[错误]预期':''返回'

[错误]预期的主要表达在"返回"

之前

三元运营商是否不使用返回语句,或者代码有问题?我想代码是自我解释的。

谢谢。

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

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

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

因此,您可以/应该将其写为

return mystack.empty() ? 1 : 0;

返回是一个语句,规则是您无法将语句调用到表达式中。

尝试重新格式化代码并使用以下(假设该函数返回布尔值)

return  mystack.empty()? 1:0;
相关文章: