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

she*_*lbc 14 c if-statement shortcut

对于速记IF-ELSE语句,C具有以下语法

    (integer == 5) ? (TRUE) : (FALSE);
Run Code Online (Sandbox Code Playgroud)

我经常发现自己只需要声明的一部分(TRUE或FALSE)并使用它

    (integer == 5) ? (TRUE) : (0);
Run Code Online (Sandbox Code Playgroud)

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

Jer*_*emy 13

操作员?:必须返回一个值.如果你没有"else"部分,当布尔表达式为false时它会返回什么?某些其他语言中的合理默认值可能为空,但可能不适用于C.如果您只需要执行"if"并且不需要它来返回值,则键入if更容易.


Dav*_*ers 5

问题是我们是否可以在不包含then和else部分的情况下以某种方式编写以下表达式

(integer == 5) ? (THENEXPR) : (ELSEEXPR);
Run Code Online (Sandbox Code Playgroud)

如果只需要那么部分,可以使用&&:

(integer == 5) && (THENEXPR)
Run Code Online (Sandbox Code Playgroud)

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

(integer == 5) || (ELSEEXPR)
Run Code Online (Sandbox Code Playgroud)