【问题标题】:Trying to use a conditional and return at the same time but it doesn't work尝试同时使用条件和返回,但它不起作用
【发布时间】:2018-09-10 01:07:45
【问题描述】:

我正在尝试这样做:

(number % 2 == 0) ? return 1 : return 0; 

但它不起作用,有人知道为什么吗?

【问题讨论】:

  • 你可能想要return ( (number % 2 == 0) ? 1 : 0 );
  • return 不是函数,但不需要声明和括号。
  • 我意识到这一点,但为了清楚起见,我更喜欢始终将三元运算符表达式放在括号中。
  • 我确实同意有时,尤其是。在组合条件(+ 宏)中,使用括号是有益的,我也这样做,但在这种情况下没有歧义 - 它只是常规和 simple 三元运算符。这些括号根本没用。

标签: c++ if-statement return conditional


【解决方案1】:

你应该这样写:

return (number % 2 == 0) ? 1 : 0; 

【讨论】:

  • 你也可以不用多余的括号。
  • 您也可以完全不使用?: 运算符来编写它:return (number % 2) == 0; 这将产生一个布尔值truefalse,分别隐式转换为10 , 如果返回类型是数字。
  • 我实际上是为了可读性保留了括号。此外,由于 OP 似乎很新手,我只想纠正他的方法。不过感谢 cmets。
  • @MarcinOrlowski -- 当然,有些人喜欢在某些子表达式周围加上括号。就个人而言,我发现它(看括号很烦人)和(弄清楚)它们(不影响任何东西)。
  • @PeteBecker:这个答案中的括号绝对是代码通过我团队的审查所必需的。没有理由省略它们,它们消除了对表达式含义的所有疑问。它们还使精神分析变得更容易。您不需要需要“弄清楚它们不会影响任何东西”。关键是你根本不需要“弄清楚”任何事情......
猜你喜欢
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 2022-01-05
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多