C 中的 IF-ELSE 语句快捷方式

问题描述 投票:0回答:3

C 的 IF-ELSE 语句简写语法如下

    (integer == 5) ? (TRUE) : (FALSE);

我经常发现自己只需要陈述的一部分(正确或错误)并使用它

    (integer == 5) ? (TRUE) : (0);

我只是想知道是否有办法不使用这种速记符号包含语句的 ELSE 部分?

c if-statement shortcut
3个回答
17
投票

运算符

?:
必须返回一个值。如果没有“else”部分,当布尔表达式为 false 时,它会返回什么?在其他一些语言中,合理的默认值可能是 null,但对于 C 来说可能不是。如果您只需要执行“if”并且不需要它返回值,那么输入
if
会容易得多。


11
投票

问题是我们是否可以以某种方式编写没有 then 和 else 部分的以下表达式

(integer == 5) ? (THENEXPR) : (ELSEEXPR);

如果您只需要then部分,您可以使用&&:

(integer == 5) && (THENEXPR)

如果您只需要 else 部分,请使用 ||:

(integer == 5) || (ELSEEXPR)

0
投票

假设您正在使用?运算符将其返回值分配给变量,您可以在 else 部分写回您的值,因此它保留其旧值。

int retval = 0;
retval = (integer == 5) ? (5) : (retval);

仍然建议使用简单的 if,就像建议接受的答案一样......

© www.soinside.com 2019 - 2024. All rights reserved.